依赖字段上的Cakephp自定义验证

依赖字段上的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

我需要在我的模型中进行自定义验证,其中字段1不能重复,字段2将区分它,就像复合键一样。就像下面一样

    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
}