Правила проверки структуры Yii

Я использую Yii 1 для своего проекта. У меня есть 5 полей в форме, которые должны быть заполнены. Там нет проблем с этим — простое правило проверки в модели. Однако есть еще одно поле, которое не обязательно. Но если он заполнен, остальные 5 полей должны стать не обязательными. Как определить такие правила проверки в методе rules () в модели?

Заранее большое спасибо!

0

Решение

Попробуйте поиграть со сценариями. Когда вы проверяете свои данные, проверьте, заполнено ли это поле, и создайте новую модель с конкретным сценарием.

Посмотрите Вот

0

Другие решения

Вы можете создать свое собственное правило проверки, чтобы пропустить сценарии, вам необходимо:

Основываясь на этом:

$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...
  1. Объявите ваше правило внутри вашей модели следующим образом:
    array('ATTR1, ATTR2, ATTR3, ATTR4, ATTR5','{NameofRule}Validator'),

  2. Создайте пользовательскую проверку внутри вашего components/validators/general/{NameofRule}Validator

    со следующим кодом

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');
}
}
}
}

Не забудьте добавить свои комментарии и пометить как решенные 😉

0

По вопросам рекламы [email protected]