依赖字段上的Cakephp自定义验证
我需要在我的模型中进行自定义验证,其中字段1不能重复,字段2将区分它,就像复合键一样。就像下面一样依赖字段上的Cakephp自定义验证,php,validation,cakephp,cakephp-1.3,Php,Validation,Cakephp,Cakephp 1.3,我需要在我的模型中进行自定义验证,其中字段1不能重复,字段2将区分它,就像复合键一样。就像下面一样 public $validate = array( 'field1' => array( 'required' => array( 'rule' => 'notEmpty', 'message' => 'Can\'t left blank.' ), 'unique
public $validate = array(
'field1' => array(
'required' => array(
'rule' => 'notEmpty',
'message' => 'Can\'t left blank.'
),
'unique' => array(
'rule' => array('validateNumberType'),
'message' => 'Already exist'
),
)
);
function validationRule() {
$validation_var = $this->find('first', array('conditions' => array('Model.field1' => 'field1', 'Model.field2' => 'field2')));
return $validation_var;
}
我尝试过,但没有成功,函数中可能有错误吗?按照规则中的定义,将函数名更改为validateNumberType,如: public $validate = array( 'field1' => array( 'required' => array( 'rule' => 'notEmpty', 'message' => 'Can\'t left blank.' ), 'unique' => array( 'rule' => array('validateNumberType'), 'message' => 'Already exist' ), ) ); function validateNumberType() { $validation_var = $this->find('first', array('conditions' => array('Model.field1' => 'field1', 'Model.field2' => 'field2'))); return $validation_var; } public$validate=array( “field1”=>数组( “必需”=>数组( 'rule'=>'notEmpty', “消息”=>“不能为空。” ), “唯一”=>数组( 'rule'=>array('validateEnumberType'), '消息'=>'已存在' ), ) ); 函数validateEnumberType(){ $validation\u var=$this->find('first',array('conditions'=>array('Model.field1'=>'field1','Model.field2'=>'field2')); 返回$validation\u var; }
请参见此处示例:永远不要忘记规则中的最后一个=>true!否则,您的错误消息将被弄乱
var $validate = array(
'slug' => array(
'rule' => 'validationRule',
'message' => 'error message'
)
);
function validationRule($check) {
//validation
//$check is value of the field
}
var $validate = array(
'slug' => array(
'rule' => 'validationRule',
'message' => 'error message'
)
);
function validationRule($check) {
//validation
//$check is value of the field
//$this->data is value of whole submited form
// return true if validate, false either
}