我有自定义验证规则:
public function customRule($check)
{
}
在此规则中,我想访问一些模型数据(在数据库中)。我当然可以这样做:
$this->id = 23;
$this->read();
但是read
函数会覆盖当前模型中的所有数据(我的意思是$this->data[$this->alias][...]
被覆盖。
我如何获得这些数据?
答案 0 :(得分:3)
使用常规
$result = $this->find('first', array('conditions' => array($this->alias . '.' . $this->primaryKey => $id));
在查找条件中使用id。使用结果,它不会覆盖数据属性。
答案 1 :(得分:1)
请注意,如果您想获得当前正在验证的数据的完整记录,则始终可以在验证规则中的$this->data
中访问它,而不是$ check仅包含当前已验证字段中的数据。
如果您需要根据存储在数据库中的内容进行验证,您可以使用$this->find()
或模型中的任何模型函数。
我支持@burzum的回答+1。