Динамическое добавление правил валидации на Yii

Если вы только знакомитесь с фреймворком, то возможно вам стоит обратить внимание на то что в нем есть возможность применять разные наборы правил валидации в зависимости от сценария. Использование сценариев позволяет собрать всю логику в "толстых моделях", что хорошо и правильно в большинстве случаев. Однако, при разработке крупного проекта, бывает необходимость реализовать какую-то специфическую опцию только в одном месте, и если таких опций много, то модель может чрезмерно разрастись.

В таких случаях принято делать "толстый контроллер" который содержит нужную логику. В Yii добавить валидаторы динамически можно так:

$validators = $model->getValidatorList();

$validators->add(CValidator::createValidator('safe', $model, array('status_id')));  

comments powered by HyperComments