you can create your own custom validation rule so you can skip scenarios, you will need to:
Stating that:
$model->TRIGGERATTR = is the attribute that if informed is going to indicate that the other 5 are required
$model->ATTR1 = one of the five other attributes
$model->ATTR2 = two of the five other attributes
.
.
. and so on...
Declare your rule inside your model like :
array('ATTR1, ATTR2, ATTR3, ATTR4, ATTR5','{NameofRule}Validator'),
Create a custom validation inside your components/validators/general/{NameofRule}Validator
with the following code
class {NameofRule}Validator extends CValidator
{
public function validateAttribute($model, $attribute)
{
if((isset($model->TRIGGERATTR))&&(!is_null($model->TRIGGERATTR))
{
if(!isset$model->$attribute||is_null($model->$attribute))
{
$this->addError($model, $attribute, 'Is not Informed and it should be');
}
}
}
}
Don´t forget to add your comments and mark as solved ;-)