我有一个db记录存在验证器,我将其称为isValid:
$checkUser=new Zend_Validate_Db_RecordExists(array(
"table"=>"xxx",
"field"=>"xxx"
));
$valid=$checkUser->isValid($userID);
当isValid()为true时,我是否可以从db获取返回的行?
输入后我意识到我可以只查询数据库,如果行存在,很好,否则它无效。仍然很好奇Db_RecordExists返回的数据会发生什么。
答案 0 :(得分:1)
来自source code of Zend_Validate_Db_RecordExists(版本1.12):
public function isValid($value)
{
$valid = true;
$this->_setValue($value);
$result = $this->_query($value);
if (!$result) {
$valid = false;
$this->_error(self::ERROR_NO_RECORD_FOUND);
}
return $valid;
}
所以显然$result
是一个局部变量,因此以后无法访问它。如果你想实现这一点,你可以简单地编写自己的验证器Zend_Validate_Db_Abstract
。