我检查了 Zend 框架:Zend_Validate_Db_RecordExists 和 Zend_Validate_Db_NoRecordExists,并观察到您可以检查数据库表中的列以查看表单中的值是否出现在命名列中。
我还观察到,您可以根据同一行中另一列的值排除一行。
是否可以使用这些验证器验证密码是否与用户名匹配?
到目前为止,在我的表单中,如果用户输入了正确的用户名和正确的密码(但不一定是此用户名的密码!),表单会验证输入。显然,对于登录表单或用户名/令牌激活表单,令牌或密码必须与同一行中的用户名匹配!
谢谢。
$this->addElement('text', 'handle', array(
'label' => 'Username:',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
array(
'NotEmpty', true, array('messages' => 'You must enter your username.')
),
array(
'Db_RecordExists',
false,
array (
'member_activation',
'member_username'
)
)
)
));
$this->addElement('text', 'validationCode', array(
'label' => 'Code:',
'required' => true,
'filters' => array('StringTrim'),
'validators' => array(
array(
'NotEmpty', true, array('messages' => 'You must enter your validation code.')
),
array(
'Db_RecordExists',
false,
array (
'member_activation',
'member_validationcode'
)
)
)
));