如何在不同的控制器中调用模型验证?

时间:2013-04-22 12:31:02

标签: cakephp-2.0

我有两个不同的表'users'和'users_details'。并且制作了两个不同的模型'User'和'UserDetail'。在user_details表中我有user_id和image fields.But我想使用cakephp规则验证来自用户控制器的图像字段。所以请尽快给我任何想法来完成这个任务可能的。

感谢。

2 个答案:

答案 0 :(得分:0)

如果UserDetail是您进入控制器的模型,请尝试此操作:

$this->loadModel('UserDetail');
if ($this->UserDetail->validates()) {
    // it validated logic
} else {
    // didn't validate logic
    $errors = $this->UserDetail->validationErrors;
}

答案 1 :(得分:0)

因为UserDetail具有“user_id”,所以它应该被设置为属于用户,而用户应该具有多个或者具有一个UserDetail。您可以在手册http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html

中了解如何设置关系

然后在您的Users控制器中,您可以像这样访问UserDetail模型

$this->User->UserDetail->set($this->request->data);
if($this->User->UserDetail->validates()) {
    // ...
}

保存相关模型数据:http://book.cakephp.org/2.0/en/models/saving-your-data.html#saving-related-model-data-hasone-hasmany-belongsto

来自控制器的验证数据:http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html