Запрет иметь значение в relations

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
vasya_k
Сообщения: 50
Зарегистрирован: 2013.05.30, 14:04

Запрет иметь значение в relations

Сообщение vasya_k »

Добрый день,

Как реализовать relations (или не relations) так чтобы не позволялось записать в поле, например email, если в другой таблице а каком-то поле это значение (уникальное) уже есть.

Имеется в виду на уровне $model->save(), $model->update() валидатор ошибку выдавал.

Спасибо.
Аватара пользователя
Neuromance
Сообщения: 716
Зарегистрирован: 2011.09.06, 13:04

Re: Запрет иметь значение в relations

Сообщение Neuromance »

в rules CUniqueValidator
vasya_k
Сообщения: 50
Зарегистрирован: 2013.05.30, 14:04

Re: Запрет иметь значение в relations

Сообщение vasya_k »

Можно пример кода?
Bloom
Сообщения: 313
Зарегистрирован: 2013.02.25, 12:57

Re: Запрет иметь значение в relations

Сообщение Bloom »

Пиши свой валидатор и вызывай его в rules()
vasya_k
Сообщения: 50
Зарегистрирован: 2013.05.30, 14:04

Re: Запрет иметь значение в relations

Сообщение vasya_k »

Послушайте, вы можете код схематично набросать?
Аватара пользователя
Neuromance
Сообщения: 716
Зарегистрирован: 2011.09.06, 13:04

Re: Запрет иметь значение в relations

Сообщение Neuromance »

vasya_k писал(а):Можно пример кода?
В google забанили вас чтоли? Зачем тут пример кода, если всё гуглится отлично

Код: Выделить всё

public function rules()
{
   return array(
      array('email','unique','message'=>'такой email уже существует')
  )
}
Последний раз редактировалось Neuromance 2013.08.21, 13:30, всего редактировалось 1 раз.
vasya_k
Сообщения: 50
Зарегистрирован: 2013.05.30, 14:04

Re: Запрет иметь значение в relations

Сообщение vasya_k »

Я вам рекомендую внимательно просчитать мой первый пост.
Аватара пользователя
Neuromance
Сообщения: 716
Зарегистрирован: 2011.09.06, 13:04

Re: Запрет иметь значение в relations

Сообщение Neuromance »

vasya_k писал(а):Я вам рекомендую внимательно просчитать мой первый пост.
тогда правильно тебе там написали.Пиши свой валидатор, а уже в нём ройся в другой таблице и ищи такое же значение, как у тебя
vasya_k
Сообщения: 50
Зарегистрирован: 2013.05.30, 14:04

Re: Запрет иметь значение в relations

Сообщение vasya_k »

Ну я и спрашиваю как это сделать? Я не предлагаю вам написать за меня мой валидатор, я спрашиваю как это делается, где в коде надо что прописать чтобы вызывался мой валидатор и чтобы он выдавал мое сообщение об ошибке.
puritania
Сообщения: 43
Зарегистрирован: 2012.04.18, 06:26
Откуда: Челябинск
Контактная информация:

Re: Запрет иметь значение в relations

Сообщение puritania »

vasya_k писал(а):Ну я и спрашиваю как это сделать? Я не предлагаю вам написать за меня мой валидатор, я спрашиваю как это делается, где в коде надо что прописать чтобы вызывался мой валидатор и чтобы он выдавал мое сообщение об ошибке.
товарищъ, мануал!

http://www.yiiframework.com/doc/guide/1 ... odel#sec-3
:)
dmeroff
Сообщения: 101
Зарегистрирован: 2012.06.05, 14:32
Откуда: Петрозаводск
Контактная информация:

Re: Запрет иметь значение в relations

Сообщение dmeroff »

Зачем писать свой валидатор, если все уже придумано:

Код: Выделить всё

public function rules()
{
   return array(
      array('email','unique','className'=>'Имя класса', 'attributeName'=>'Имя атрибута','message'=>'такой email уже существует')
  )
} 
Аватара пользователя
Neuromance
Сообщения: 716
Зарегистрирован: 2011.09.06, 13:04

Re: Запрет иметь значение в relations

Сообщение Neuromance »

dmeroff писал(а):Зачем писать свой валидатор, если все уже придумано:

Код: Выделить всё

public function rules()
{
   return array(
      array('email','unique','className'=>'Имя класса', 'attributeName'=>'Имя атрибута','message'=>'такой email уже существует')
  )
}
а Имя класса - это не свой валидатор чтоли? :D
Bloom
Сообщения: 313
Зарегистрирован: 2013.02.25, 12:57

Re: Запрет иметь значение в relations

Сообщение Bloom »

unique: CUniqueValidator, проверяет значение на уникальность.
allowEmpty, может ли значение равняться null или быть пустым.
attributeName, имя атрибута класса ActiveRecord, используемое для проверки значения.
caseSensitive, является ли сравнение регистронезависимым.
className, имя класса ActiveRecord, используемого для проверки.
criteria, дополнительный критерий запроса.

http://www.yiiframework.com/doc/api/1.1 ... eValidator
Было правильно сказано, что не нужно писать свой валидатор.
Ответить