2015-04-08 5 views
3

im совершенно новая для cakephp, мне нужна помощь в настройке уникальной электронной почты и сообщения об ошибке. Так выглядит моя модель. Спасибо!Cakephp 3.0 Уникальная электронная почта

<?php 
namespace App\Model\Table; 

use Cake\ORM\Table; 
use Cake\Validation\Validator; 

    class UsersTable extends Table 
    { 

public function validationDefault(Validator $validator) 
{ 
    return $validator 
     ->notEmpty('email', 'A email is required') 
     ->add('email', 'valid' , ['rule'=> 'email']) 
     ->requirePresence('email','create') 

     ->notEmpty('password', 'A password is required') 
     ->notEmpty('role', 'A role is required') 
     ->add('role', 'inList', [ 
      'rule' => ['inList', ['admin', 'author']], 
      'message' => 'Please enter a valid role' 
     ]); 
} 

} 
+0

Пожалуйста, добавьте больше информации о проблеме, которую вы испытываете. Возможно, вам стоит взглянуть на наш [справочный центр] (http://stackoverflow.com/help) и, в частности, на [how-to-ask] (http://stackoverflow.com/help/how- to-ask) стр. – Phate01

+2

Просто добавьте правило [unique] (http://book.cakephp.org/3.0/en/core-libraries/validation.html#unique-fields)? – Oldskool

+1

Спасибо! Я добавил -> add ('email', [ 'unique' => ['rule' => 'validateUnique', 'provider' => 'table'] ]); И это работает –

ответ

1

Другим способом было бы добавить его в функцию buildRules() вашей таблицы.

public function buildRules(RulesChecker $rules) 
{ 
    $rules->add($rules->isUnique(['email'])); 
    return $rules; 
} 
Смежные вопросы