Я хочу сделать набор полей обязательным, если другой набор полей пуст в yii2. Любой набор полей должен быть заполнен (обязательно) идеально - PullRequest
0 голосов
/ 07 мая 2020

Я работаю над формой приема, где мне нужно собрать информацию о родителях. Итак, есть условие, что любые данные родителей должны быть идеально заполнены. Значит, если я не заполню данные об отцах, то для матерей все поля будут обязательными. Если я заполню какое-либо поле информации об отце, тогда в данных об отце все поля должны быть обязательными, или наоборот.

Это мой код модели AdmissionForm:

public function rules()
{
    return [
      [['firstname', 'middle_name', 'surname_name'],'required'],
      [['residential_telephone_no',],'required'],
      [['father_name', 'father_qualification', 'father_occupation', 'father_mobile_no', ], 'safe'],//this needs to be alternately required 
      [['mother_name', 'mother_qualification', 'mother_occupation', 'mother_mobile_no', ], 'safe'],//this needs to be alternately required
      [[ 'admission_date'], 'safe'],
      [['form_id'], 'required'],
      [['aadhaar_no'], 'match', 'pattern' => '/^\d{12}$/', 'message' => 'Field must contain exactly 12 digits.',],
    ];
}

Я просто хочу зафиксировать любую информацию о родителях.

1 Ответ

0 голосов
/ 08 мая 2020

Вы можете использовать обратный вызов yii\validatprs\Validator::$when, чтобы указать, следует или не следует применять правило. Обратный вызов должен возвращать истину, если следует использовать правило.

Например, мы можем сделать поля с данными отца, необходимыми, когда имя матери пусто:

[
    ['father_name', 'father_qualification', 'father_occupation', 'father_mobile_no'],
    'required',
    'when' => function ($model) {
         return empty($model->mother_name);
    }
]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...