2017-09-26 60 views

回答

1

你可以只複製你有什麼檢查email地址是唯一相關的移動領域。例如,如果你的領域是phone: -

public function buildRules(RulesChecker $rules) 
{ 
    $rules->add($rules->isUnique(['email'])); 
    $rules->add($rules->isUnique(['phone'])); 
    return $rules; 
} 

你可以閱讀更多關於在official docs驗證獨特的領域。

+0

這是非常有用的。謝謝 –

+0

@ a.shah如果它有助於解決您的問題,請接受它作爲答案。 – drmonkeyninja

-1

你可以這樣做:
1.

$validator 
    ->notEmpty('phone',__('Please enter phone.',true)) 
    ->add('phone',[ 
     'phoneUniqueCheck'=>[ 
      'rule'  => 'phoneUniqueCheck', 
      'provider' => 'table', 
      'message' => 'phone id already exists.' 
     ] 
    ]); 

    public function emailUniqueCheck($value,$context){ 
     $phone   = $context['data']['phone']; 
     $data = $this->find('all')->where(array('phone' => $phone))->first(); 

     if(empty($data)){ 
      return true; 
     } 
     return false; 
    } 

2.

$validator->requirePresence('phone',true,__('Please enter phone')) 
    ->add('phone', 'unique', ['rule' => 'validateUnique', 'provider' => 'table','message' => 'Phone id already exists.']); 
+0

感謝您的幫助 –

+0

爲什麼您downvote我的答案,如果我的回答是正確的,然後PLZ接受 –

+0

我不會downvote –