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

How can we validate multiple fields with one validation in cakePHP 2.0?

我们如何检查名字和姓氏在 cakePHP 中的唯一性验证? 记录1: 名字:raj 姓氏:库马尔

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

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

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

请帮帮我。

提前致谢

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

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 使用新的验证规则来检查名称是否唯一。

您可能想要 tweak/improve 上述自定义规则来满足您的确切要求,但它应该会让您走上正轨。

试试这个方法

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;
}