2015-06-22 101 views
-1

我們如何檢查名字和姓氏是cakePHP中唯一的驗證? RECORD1: 第一名稱:RAJ 姓:KUMAR我們如何使用CakePHP 2.0驗證多個字段?

如果我們在輸入字段中輸入相同的名稱,它應該顯示驗證消息「記錄alredy存在」。

我知道如何驗證單個字段驗證。

如何驗證first_name和last_name的組合是唯一的?

請幫我這個。

由於提前

+0

請註明您使用的是什麼版本的CakePHP的。你是否問如何驗證'first_name'和'last_name'的組合是唯一的? – drmonkeyninja

+0

cakePHP2.x。是的,我們可以驗證兩個字段的組合嗎? – arjun

+0

閱讀此書http://book.cakephp.org/2.0/en/models/data-validation.html#custom-validation-rules您必須編寫自己的規則。 – burzum

回答

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'指示蛋糕使用新的驗證規則來檢查名稱是否是唯一的。

您可能會想要調整/改進上述自定義規則以滿足您的確切要求,但它應該將您置於正確的軌道上。

+0

真的很棒。感謝您提供答案。 – arjun

+0

我們如何才能做到以下語句在主題控制器與分頁?$ posts = $ this-> Topic-> Post-> find('all',array('conditions'=> array('Post.topic_id'=> $ ID))); – arjun

+0

嗨@arjun這與現有問題無關,因此請創建一個新的問題。 :-) – drmonkeyninja

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