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