0

我正在使用 cakephp2.0 并想集成评论插件,但我什么也没得到适当地。

请让我知道是否有任何简单的评论插件,我可以根据需要进行集成和修改。

谢谢,

4

1 回答 1

1

以下是我设置评论的方式:

评论表字段:

  • ID
  • parent_type,匹配父模型名称
  • parent_id
  • 内容
  • user_id,发件人

在您想要评论的任何模型中,在此您的关联:

public $hasMany = array(
        'Comment' => array(
            'className' => 'Comment', 
            'foreignKey' => 'parent_id', 
            'conditions' => array('Comment.parent_type' => 'question')
        )
    );

这是一个视图元素:

<?php
/*
set variables:
$data : data of the parent
$type : the type of the parent
*/
if(!isset($name)) {
$name = 0;
}
foreach($data['Comment'] as $comment){
    echo '<div class="comment">'.$comment['content'].
        ' - '.$this->Html->link($comment['User']['username'],array('controller'=>'users','action'=>'view',$comment['User']['id']))
        .'</div>';
}
echo $this->Form->create(null, array('url' => '/comments/add','id'=>'qCommentForm'));
echo $this->Form->input('Comment.parent_id', array('type'=>'hidden','value'=>$data[$type]['id']));
echo $this->Form->input('Comment.parent_type', array('type'=>'hidden','value'=>$type));
echo $this->Form->textarea('Comment.content',array('div'=>'false','class'=>'small','label'=>false));
echo $this->Form->submit(__('Leave comment'),array('div'=>'false','class'=>'small'));
echo $this->Form->end();
?>

然后,在您的模型的视图视图中,添加它(假设您将元素命名为 comment.ctp:

<?php echo $this->element('comment',array('data'=>$modelData,'type'=>'MyModel')) ?> 
于 2012-05-25T02:40:38.687 回答