0

我对 cakephp 还很陌生,所以我可能只是在这里设置错误。

我创建了一个包含评论和帖子(除其他外)的简单博客。

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

我遇到的问题是,当出现验证错误时,它会在/views/comments/add 视图中显示它们,而不是在我添加评论/views/posts/view 的视图中。

这必须是一件很常见的事情,我想,我哪里错了?

4

1 回答 1

0

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

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

但是当然,您需要确保通过 Comments 控制器的 add 方法收集和设置“Posts/view/”文件所需的所有数据。

相反,我要做的只是让评论表单通过 AJAX 提交(你知道 AJAX 吗?)。这样,您可以呈现 Comments/add 视图(或其中的适当部分)而无需刷新页面的其余部分。

当然,禁用 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
于 2012-08-15T22:33:52.100 回答