Yii - alterar dinamicamente as regras do controlador

Digamos que eu tenha um produto que possa ter uma cor. Dependendo do tipo de produto, o campo de cores pode ou não ser necessário.

Se a cor é sempre necessária, eu teria o seguinte no modelo do produto

<code>public function rules()
{
    return array(
        array('colour', 'required')
    );
}
</code>

No entanto, quero que isso seja dinâmico, dependendo do tipo de produto.

Isso deve ser feito no controlador? Eu imagino ter algo parecido com o seguinte no controlador:

<code>public function actionOrder() {
    // ....
    if ($product->HasColour) {
        // set the colour validation to be required
    } else {
        // set the colour validation to be not required
    }
}
</code>

Qual é a melhor maneira de abordar isso?

obrigado

questionAnswers(4)

yourAnswerToTheQuestion