Yii2: правила флажка не работают при регистрации на условиях
При регистрации мне нужно определенное сообщение, но по какой-то причине оно не отображает мое сообщение.
пожалуйста помоги
У меня есть следующие правила:
['acordul_tc', 'required', 'on' => ['register']],
['acordul_tc', 'integer', 'max' => 1, 'message' => 'my test message'],
и html:
<div style='position:relative; float:left; padding:5px;'>
<div style='float:left; padding:5px;'>
<?php
echo $form->field($model, 'acordul_tc',
['options' => ['tag' => 'span',],
'template' => "{input}"])->checkbox(['checked' => false]);
?>
</div>
<div style='float:left; padding:5px;'>
<?php
echo \Yii::t('user', 'acordul_tc_start') .
Html::a(Yii::t('diverse', 'Termenii si Conditiile'),
['site/terms-and-conditions']) .
\Yii::t('user', 'acordul_tc_end');
?>
</div>
</div>
<div class="col-lg-12">
<?php
echo $form->field($model, 'acordul_tc',
['template' => "{error}"])
->error();
?>
Ответы
Ответ 1
Если вы хотите показать сообщение об ошибке, когда флажок не установлен, попробуйте это правило
['acordul_tc', 'required', 'on' => ['register'], 'requiredValue' => 1, 'message' => 'my test message']
Это означает, что атрибут требуется и должен быть равен 1, иначе отобразите ошибку с вашим сообщением.
Ответ 2
- Принятый ответ не маркирует требуемый флажок как "КРАСНЫЙ" цветной.
- Он отображает только сообщение об ошибке ниже флажка, который частично принят, решение должно быть приемлемым только в том случае, если оно показывает правильные эффекты проверки на пользовательском интерфейсе, а не только на сообщение.
-
Ниже приведено изменение кода в FORM для получения ожидаемого результата для конечного пользователя.
echo $form->field($model, 'acordul_tc',
['options' => ['tag' => 'span'],
template' => "{input}"]
)
->checkbox(['checked' => false, 'required' => true]);
-
Ниже приведен образ, который объясняет все.
Ответ 3
в модели> правила
[['acordul_tc'], 'compare',
'compareValue' => true,
'operator' => '==',
'when' => function ($data) {
return $data->acordul_tc== 1;
}
],