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

  1. Принятый ответ не маркирует требуемый флажок как "КРАСНЫЙ" цветной.
  2. Он отображает только сообщение об ошибке ниже флажка, который частично принят, решение должно быть приемлемым только в том случае, если оно показывает правильные эффекты проверки на пользовательском интерфейсе, а не только на сообщение.
  3. Ниже приведено изменение кода в FORM для получения ожидаемого результата для конечного пользователя.

    echo $form->field($model, 'acordul_tc', 
                    ['options' => ['tag' => 'span'], 
                    template' => "{input}"]
                )
              ->checkbox(['checked' => false, 'required' => true]);
    
  4. Ниже приведен образ, который объясняет все.

enter image description here

Ответ 3

в модели> правила

[['acordul_tc'], 'compare', 
    'compareValue' => true,
    'operator' => '==',
    'when' => function ($data) {
        return $data->acordul_tc== 1;
    }
],