Yii - cambiar dinámicamente las reglas desde el controlador

Digamos que tengo un producto que puede tener un color. Dependiendo del tipo de producto, el campo de color puede o no ser requerido.

Si siempre se requiere color, tendría lo siguiente en el modelo del producto

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

Sin embargo, quiero que esto sea dinámico dependiendo del tipo de producto.

¿Debería hacerse esto en el controlador? Me imagino tener algo como lo siguiente en el 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>

¿Cuál es la mejor manera de abordar esto?

Gracias

Respuestas a la pregunta(4)

Su respuesta a la pregunta