所以我试图扩展博客教程添加一些评论:
Post hasMany Comments
我想在与“帖子视图”相同的视图中显示添加评论表单。事情是我不知道获得这种方法的最佳方法。我想了三个办法:
- 在 Comments Controller 中创建一个函数来处理数据。
- 在 Post Controller 中创建一个函数来处理数据。
- 在处理帖子视图的同一函数中处理数据。
前两个“解决方案”的主要问题是验证错误不会出现在表单中,除非我在会话变量中保存无效字段,然后在 beforeFilter 回调中解析变量,像这样:
function beforeFilter () {
if ($this->Session->check('comment_error')) {
$this->Post->Comment->validationErrors = $this->Session->read('comment_error');
$this->Session->delete('comment_error');
}
}
我基本上所做的是将无效字段调整为实际视图并使其正确显示。这真的很好用,但对我来说似乎很难看。最好的方法是什么?
另一个相关问题:控制器应该反映视图吗?我的意思是在那个例子中,我考虑只有一个评论模型并处理控制器中的所有数据,其中添加评论的表单(即使它在 Post Controller 中)。