Я пытаюсь использовать это правило проверки в своей модели, но он не работает.Yii2: безопасный валидатор при условии
Я имею в виду, что он всегда остается в безопасности, даже если выбрать другой вариант.
[['dhanwantri_bill_number'], 'safe',
'when' => function($model) {
return $model->bill_type =='d';
},
'whenClient' => "function (attribute, value) {
return $('#opdtestbill-bill_type').val() == 'd';
}"
],
Я делаю что-то неправильно? Есть ли альтернативное решение для достижения того же.
Спасибо.
Правило bill_type
, как
[['bill_type'], 'string', 'max' => 20],
[['bill_type','test_name','date'], 'required'],
Редактировать безопасного атрибута общественных свойств, как в документ
$ когда - вызываемый - PHP-вызываемый которого возвращаемого значение определяет ли этот валидатор должен применяется. yii \ validators \ Validator
$ whenClient - string - имя функции JavaScript, возвращаемое значение определяет, должен ли этот валидатор применяться на стороне клиента . yii \ validators \ Validator
Есть ли у вас какие-либо другие правила для этого атрибута? – topher
Вы действительно хотите использовать «безопасный» валидатор? [Doc] (http://www.yiiframework.com/doc-2.0/yii-validators-safevalidator.html) говорит, что _SafeValidator служит фиктивным валидатором, основная цель которого - отметить атрибуты, которые будут безопасны для массового присваивания. вы хотите запретить назначение dhanwantri_bill_number, если bill_type - 'd'? – robsch
@robsch - Нет, это совсем наоборот - я хочу разрешить присваивание, если 'dhanwantri_bill_number', если bill_type равен 'd' и запретить в других случаях. – Pawan