2016-01-16 6 views
0

Прошу прощения за такой «простой» вопрос. Я попробовал следующее, чтобы добавить к моей модели уникальное правило проверки:cakephp 3 добавить уникальное ограничение

$validator 
      ->requirePresence('pseudonym', 'create',['rule' => 'isUnique']) 
      ->notEmpty('pseudonym'); 

У меня нет ошибок. Если добавить к базе данных-ограничение я получаю только базы данных-ошибка:

Integrity constraint violation: 1062 Duplicate entry 'Stella' for key 'pseudonym'

Если добавить:

$validator 
     ->add('pseudonym','unique',['rule' => 'validateUnique']); 

я получаю исключение

Method validateUnique not found

.

Так как это работает с cakephp 3?

ответ

2

CakePHP имеет класс Rule, который позволяет определить уникальные поля http://book.cakephp.org/3.0/en/orm/validation.html#creating-unique-field-rules

use Cake\ORM\Rule\IsUnique; 

// A single field. 
$rules->add($rules->isUnique(['email'])); 

// A list of fields 
$rules->add($rules->isUnique(['username', 'account_id'])); 
+0

Я знаю, что это старый , Но у меня есть таблица адресов AdressesUsers, и я не хочу дублировать записи для user_id, а adress_id - isUnique, похоже, не работает. Что я должен использовать вместо этого? – Isengo

 Смежные вопросы

  • Нет связанных вопросов^_^