【发布时间】:2009-10-08 02:44:38
【问题描述】:
我正在使用 Kohana,但我认为这个问题更笼统。
我一直在控制器中进行表单验证,到目前为止效果很好。但是最近,我遇到了一个问题。
我有一个 cmets 模型,我从几个不同的控制器向它发送 cmets。我没有在每个控制器中都有一个验证器,而是将它放在模型中。
这很好,因为
- 只需一处更改/添加验证规则 (DRY)
这很糟糕,因为
- 我显然需要向控制器返回成功或失败,而 Kohana 的验证库将错误作为数组返回。所以我的回报是这样的
成功
array('success' => true);
失败
array('success' => false, $errors);
我不禁认为这是错误的。 感觉错了。
如果我在控制器中做,我可以简单地做
if ($post->validate()) {
doWhatever();
} else {
$this->template->formErrors = $post->errors('form_errors');
}
这似乎更好(对我来说)。
有没有更好的方法来做到这一点?我应该在控制器或方法中进行验证吗?我要疯了吗?
【问题讨论】:
-
我就是这样做的,然后检查成功指数以决定做什么(不是用 Kohona,而是一般。)
标签: php model-view-controller validation kohana