Если вы только знакомитесь с фреймворком, то возможно вам стоит обратить внимание на то что в нем есть возможность применять разные наборы правил валидации в зависимости от сценария. Использование сценариев позволяет собрать всю логику в "толстых моделях", что хорошо и правильно в большинстве случаев. Однако, при разработке крупного проекта, бывает необходимость реализовать какую-то специфическую опцию только в одном месте, и если таких опций много, то модель может чрезмерно разрастись.
В таких случаях принято делать "толстый контроллер" который содержит нужную логику. В Yii добавить валидаторы динамически можно так:
$validators = $model->getValidatorList();
$validators->add(CValidator::createValidator('safe', $model, array('status_id')));
30.05.2013