CakePHP验证取决于其他字段
发布时间:2020-12-13 17:34:22 所属栏目:PHP教程 来源:网络整理
导读:我想知道Cake PHP验证规则是否可以根据另一个来验证一个字段. 我一直在读documentation about custom validation rules,但$check param只包含要验证的当前字段的值. 例如.我想仅在new_password字段不为空的情况下定义verify_password字段. (以防万一 我可以
我想知道Cake
PHP验证规则是否可以根据另一个来验证一个字段.
我一直在读documentation about custom validation rules,但$check param只包含要验证的当前字段的值. 例如.我想仅在new_password字段不为空的情况下定义verify_password字段. (以防万一 我可以用Javascript来做,但是我想知道是否可以直接用CakePHP.
当您验证模型上的数据时,数据已经是
set() .这意味着您可以在模型的$data属性上访问它.下面的示例检查我们验证的字段,以确保它与验证规则中定义的其他字段(例如密码确认字段)相同.
验证规则将如下所示: var $validate = array( 'password' => array( 'minLength' => array( 'rule' => array('minLength',6),'message' => 'Your password must be at least 6 characters long.' ),'notempty' => array( 'rule' => 'notEmpty','message' => 'Please fill in the required field.' ) ),'confirm_password' => array( 'identical' => array( 'rule' => array('identicalFieldValues','password'),'message' => 'Password confirmation does not match password.' ) ) ); 我们的验证函数然后查看传递的字段的数据(confirm_password),并将其与规则中定义的(传递给$compareFiled)的数据进行比较. function identicalFieldValues(&$data,$compareField) { // $data array is passed using the form field name as the key // so let's just get the field name to compare $value = array_values($data); $comparewithvalue = $value[0]; return ($this->data[$this->name][$compareField] == $comparewithvalue); } 这是一个简单的例子,但您可以使用$this->数据来执行任何您想要的操作. 您的帖子中的示例可能如下所示: function requireNotEmpty(&$data,$shouldNotBeEmpty) { return !empty($this->data[$this->name][$shouldNotBeEmpty]); } 规则: var $validate = array( 'verify_password' => array( 'rule' => array('requireNotEmpty','password') ) ); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |