所以我正在尝试扩展Blog教程,添加一些注释:
Post hasMany Comments
我想在“帖子视图”的同一视图中显示添加评论表单。事情是我不知道采用这种方法的最佳方法。我想了三个方法:
两个第一个'解决方案'的主要问题是验证错误没有显示在表单中,除非我做了一些混乱的黑客攻击,在会话变量中保存无效字段然后在beforeFilter回调中解析变量,像这样:
function beforeFilter () {
if ($this->Session->check('comment_error')) {
$this->Post->Comment->validationErrors = $this->Session->read('comment_error');
$this->Session->delete('comment_error');
}
}
我基本上做的是将无效字段调整到实际视图并允许它正确显示。这很好用,但对我来说似乎很难看。什么是最好的方法?
另一个相关问题:控制器应该反映视图吗?我的意思是在那个例子中,我想到只有一个注释模型并处理控制器中的所有数据,其中添加注释的形式(即使它在后控制器中)。
答案 0 :(得分:0)
听起来你正在寻找Mutlivalidatable行为:http://bakery.cakephp.org/articles/dardosordi/2008/07/29/multivalidatablebehavior-using-many-validation-rulesets-per-model
这允许您为每个模型定义多个验证规则集。使用您的控制器确定在发布内容时应用哪一个。
P.S。我只在Cake 1.3项目上使用它,不确定它是否适用于2.0。
答案 1 :(得分:0)
我这样看: