【发布时间】:2011-04-13 14:49:42
【问题描述】:
一方面,表单验证可以被视为应用程序逻辑的一部分,因此属于模型。
另一方面,它直接处理来自视图的输入并处理显示错误等。从这个角度来看,将其放入控制器中更有意义。
从 MVC 的角度来看,哪一种方法是正确的?
P.S 我的表单验证实际上只包括编写一个字段列表及其规则,并将其传递给表单验证库,该库返回 true/false 是否通过验证。
例子:
$this->load->library('form_validation');
$this->form_validation->set_rules('name', 'Name', 'required');
$this->form_validation->set_rules('email', 'Email', 'required|valid_email');
//........
if ($this->form_validation->validate())
// Process data
else
$this->register_form(); //A controller action that will show a view with errors
应该将其放入控制器或模型中吗?
【问题讨论】:
-
我想那些说应该在 Controller 中完成验证的人来自 CakePHP-like-world,但我来自 Yii-like-world :) Validation in CakePHP VS Validation in Yii
-
@Mad 如果您以管理员身份编辑并希望省略所有字段,则控制器的工作是检查这一点,而不是调用验证方法。只需不进行验证就可以解决这种情况。
-
@Mad 我可以在模型本身中轻松检查用户是否以管理员身份登录,因为我的身份验证库对控制器和模型都可用。这可能是正确的做法。
标签: php codeigniter