你能从Zend_Validate_Db_Record_Exists验证器获得db行吗?

时间:2013-12-03 19:06:32

标签: zend-framework zend-validate

我有一个db记录存在验证器,我将其称为isValid:

$checkUser=new Zend_Validate_Db_RecordExists(array(
        "table"=>"xxx",
        "field"=>"xxx"
));
$valid=$checkUser->isValid($userID);

当isValid()为true时,我是否可以从db获取返回的行?

输入后我意识到我可以只查询数据库,如果行存在,很好,否则它无效。仍然很好奇Db_RecordExists返回的数据会发生什么。

1 个答案:

答案 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