处理不同控制器中的验证错误

时间:2012-08-15 22:04:47

标签: php validation cakephp-2.0

我对cakephp很新,所以我可能只是在这里搞错了。

我创建了一个包含评论和帖子(以及其他内容)的简单博客。

我可以在查看提交回评论控制器的帖子时添加评论(/ controllers / comments / add)。

我遇到的问题是,当存在验证错误时,它会在/ views / comments / add视图中显示它们,而不是我添加注释的视图/views/posts/view.

这应该是一个很常见的事情,我想,我哪里出错?

1 个答案:

答案 0 :(得分:0)

您可以要求注释控制器的add方法呈现不同的视图:

$this->render('/Posts/view');

但当然,你需要确保所有'Posts / view /'文件所需的数据都是由Comments控制器的add方法收集和设置的。

相反,我要做的只是通过AJAX提交评论表(你知道AJAX吗?)。这样,您可以渲染评论/添加视图(或其中的相应部分),而无需刷新页面的其余部分。

当然,禁用Javascript的用户仍然必须转到其他页面才能更正错误。但这不应该经常发生,并且一旦成功提交评论,您就可以将它们重定向回“帖子”页面。

如果您是CakePHP的新手,并且您打算使用AJAX,那么您可能希望在某处使用类似的内容:

if ($this->request->is('ajax')) {
    $this->render('/Elements/ajax_comment_form');
}
// If it's not AJAX it'll fall through and show the regular comment add.ctp view