脚本宝典收集整理的这篇文章主要介绍了在CakePHP中为文章添加评论,脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
这是我展示新闻文章的观点:
<h1><?PHP echo h($post['Post']['tITle'])?></h1> <p><?PHP echo h($post['Post']['body'])?></p> <?PHP foreach ($post['Comment'] as $comment): ?> <div class="comment" style="margin-left:50px;"> <p><?PHP echo h($comment['body'])?></p> </div> <?PHP enDForeach; echo $this->element('newcomment',array("post_id" => $post['Post']['id']));?>
我认为你不能使用“添加”视图在另一个视图中添加注释,所以我创建了一个元素.我希望这是这个的最佳实践.
我的主要“问题”是:添加评论.
我是否在表单中添加了隐藏字段,还是将其添加到表单的操作中?
我选择了“id in action”部分,因为之后重新定位更容易重用它.这是newcomment元素:
<h1>Add Comment</h1> <?PHP echo $this->Form->create('Comment',array('action' => 'add','url' => array($post_id))); echo $this->Form->input('body',array('rows' => '3')); echo $this->Form->end('Add comment'); ?>
然后这是CommentsController中的“add”函数:
public function add($post_id = null) { if ($this->request->is('post')) { $this->Comment->set(array('post_id'=>$post_id)); if ($this->Comment->save($this->request->data)) { $this->Session->setFlash('Your comment has been added.'); //$this->redirect(array('action' => 'index')); $this->redirect(array('controller' => 'posts','action' => 'view',$post_id)); } else { $this->Session->setFlash('Unable to add your comment.'); } } }
那是怎么回事?
我们通常有一个“评论”元素,其中包含所有内容 – 评论,新评论框等.然后,如果您不希望用户能够对该特定事物进行评论,或者您希望显示多少评论的变量等,则可以传递变量.这并不意味着它更好 – 只为我们做得最好.每个站点可能呈现不同的场景,这使得以更好的方式做到这一点.
我已经尝试过很多事情(包括CakePHP)的“最佳实践”问题,而我发现的是,通常没有直接的答案.如果您的代码简单,干净,组织良好,并处理任何安全/数据完整性问题,那么您没问题.
我唯一想到的就是Ajax的评论是多么好.用户被宠坏了,让页面刷新只是为了评论某些内容可能会被视为麻烦.
是否使用隐藏字段或URL完全取决于您 – 只要处理数据的代码是可靠的,它根本不重要,并且再次归结为优先级.
以上是脚本宝典为你收集整理的在CakePHP中为文章添加评论全部内容,希望文章能够帮你解决在CakePHP中为文章添加评论所遇到的问题。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。