День добрый. В поведении CModelBehavior можно добавлять новые переменные - члены класса для модели.
А можно ли как-то внутри поведения сделать и валидацию?
Валидация в поведении?
Re: Валидация в поведении?
Да возможно. Например, так:
Код: Выделить всё
public function beforeValidate( $event ){
$validator = CValidator::createValidator( $this->validatorName, $this->owner, $this->attribute, $this->validatorParams );
$this->owner->validatorList->add( $validator );
}
Re: Валидация в поведении?
О! Шикарно, спасибо!SiZE писал(а):Да возможно.
PS. Пока добавлял валидаторы столкнулся вот с чем. У меня было присвоение атрибутов в контроллере
Код: Выделить всё
$model->attributes = $_POST['MyModel'];
if($model->validate()) { ... }
В итоге добавил валидаторы в afterConstruct() поведения - стало норм.
Re: Валидация в поведении?
Тогда еще один вопрос возникает, можно ли из поведения добавить label для аттрибута?
Re: Валидация в поведении?
Да чо угодно можно. $this->owner объект к которому подключено поведениеfeodor писал(а):Тогда еще один вопрос возникает, можно ли из поведения добавить label для аттрибута?
Re: Валидация в поведении?
Спасибо