我们如何在cakePHP 2.0中通过一次验证来验证多个字段?

时间:2015-06-22 11:16:51

标签: php cakephp

我们如何检查firstname和last name是cakePHP中的唯一验证? RECORD1: 名字:raj 姓氏:kumar

如果我们在输入字段中输入相同的名称,则应显示验证消息"记录alredy Exists"。

我知道如何验证单字段验证。

如何验证first_name和last_name的组合是否唯一?

请帮助我。

先谢谢

2 个答案:

答案 0 :(得分:0)

您需要setup a custom validation rule来测试全名'是独特的。例如,在您的模型中添加一个新的验证方法,如下所示: -

public function validateUniqueFullName(array $data) {
    $conditions = array(
        'first_name' => $this->data[$this->alias]['first_name'],
        'last_name' => $this->data[$this->alias]['last_name']
    );
    if (!empty($this->id)) {
        // Make sure we exclude the current record.
        $conditions[$this->alias . '.' . $this->primaryKey . ' !='] = $this->id;
    }
    return $this->find('count', array('conditions' => $conditions)) === 0;
}

然后将新的验证规则添加到模型的$validate属性中: -

public $validate = array(
    'first_name' => array(
        'unique' => array(
            'rule' => 'validateUniqueFullName',
            'message' => 'Not unique'
        )
    )
);

其中'rule' => 'validateUniqueFullName'指示Cake使用新的验证规则来检查名称是否唯一。

您可能希望调整/改进上述自定义规则以满足您的确切要求,但它应该让您走上正确的轨道。

答案 1 :(得分:0)

试试这种方式

public $validate = array(
    'facebook_link' => array(
        'rule'    => array('customValidation','facebook_link'),
        'message' => 'Please enter facebook link.'
    ),
    'twitter_link' => array(
        'rule'    => array('customValidation','twitter_link'),
         'message' => 'Please enter twitter link.'
    )

);

function customValidation($data , $filed) {
    if(empty($data[$filed])) {
        return false;
    }
    return true;
}