2017-09-26 131 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 –