cakephp:从控制器检查isunique

时间:2012-12-17 06:54:14

标签: php cakephp

我想检查控制器中的电子邮件/用户名是否唯一。我为isUnique编写了模型验证,它可以工作。但我也想要一种在控制器中使用它的方法。有点像

$this->User->validates(array('email'=>'someemail@domain.com'));

$this->User->checkunique();
//is this the right way to write a different function again.

我知道我可以使用来自控制器的findByEmail并检查它是否返回空结果集。但我觉得有一种更简单的方法或者cakephp提供的方式。如果我错了,请纠正我,让我在这种情况下指出正确的方法。

谢谢, 基兰

1 个答案:

答案 0 :(得分:1)

你已经看过Cook Book了吗?关于如何做到这里有一个很好的解释:

http://book.cakephp.org/2.0/en/models/data-validation/validating-data-from-the-controller.html

总结一下。首先设置要验证的数据:

$this->User->set($data);

然后验证它并传递一个字段列表以限制验证,如果需要:

$this->User->validates(array('fieldList' => array('email')));

您是否将自己包装在自定义模型方法中完全取决于您,但从DRY的角度来看,这样做是个好主意。