访问自定义验证规则中的模型数据

时间:2012-06-26 10:31:01

标签: cakephp cakephp-2.0 cakephp-2.1

我有自定义验证规则:

public function customRule($check)
{


}

在此规则中,我想访问一些模型数据(在数据库中)。我当然可以这样做:

$this->id = 23; 
$this->read();

但是read函数会覆盖当前模型中的所有数据(我的意思是$this->data[$this->alias][...]被覆盖。

我如何获得这些数据?

2 个答案:

答案 0 :(得分:3)

使用常规

$result = $this->find('first', array('conditions' => array($this->alias . '.' . $this->primaryKey => $id));

在查找条件中使用id。使用结果,它不会覆盖数据属性。

答案 1 :(得分:1)

请注意,如果您想获得当前正在验证的数据的完整记录,则始终可以在验证规则中的$this->data中访问它,而不是$ check仅包含当前已验证字段中的数据。

如果您需要根据存储在数据库中的内容进行验证,您可以使用$this->find()或模型中的任何模型函数。

我支持@burzum的回答+1。