Php Yii2:复选框规则在条款和条件注册时不起作用

Php Yii2:复选框规则在条款和条件注册时不起作用,php,yii2,Php,Yii2,在注册时,我需要一条特定的消息,但由于某种原因,它无法显示我的消息 请帮忙 我有以下规则: ['acordul_tc', 'required', 'on' => ['register']], ['acordul_tc', 'integer', 'max' => 1, 'message' => 'my test message'], 以及html: <div style='position:relative; float:left; padding:5px;'> &

在注册时,我需要一条特定的消息,但由于某种原因,它无法显示我的消息

请帮忙

我有以下规则:

['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();
?>


如果要在未选中复选框时显示错误消息,请尝试此规则

 ['acordul_tc', 'required', 'on' => ['register'], 'requiredValue' => 1, 'message' => 'my test message']
这意味着该属性是必需的,必须等于1,否则消息将显示错误

  • 接受的答案不会将必填复选框标记为“红色”
  • 它仅在部分接受的复选框下方显示错误消息,只有当解决方案在UI上显示正确的验证效果而不仅仅是消息时,该解决方案才必须是可接受的
  • 下面是需要对表单进行的代码更改,以获得最终用户的预期输出

    echo $form->field($model, 'acordul_tc', 
                    ['options' => ['tag' => 'span'], 
                    template' => "{input}"]
                )
              ->checkbox(['checked' => false, 'required' => true]);
    
  • 下图解释了所有问题


  • 在模型>规则功能中

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

    这不会将复选框突出显示为“红色”。上述实现仅给出错误消息。如何将复选框高亮显示为“红色”?@olchick。。嗨,我想使我的复选框默认为选中。我试过了,但没用<代码>。如有任何帮助,我们将不胜感激。@SalmanRiyaz在生成输入字段之前,默认选中复选框,将模型属性设置为所需的值。i、 e.$model->status=1@zumek谢谢你的回复。。我早就问过了。。如果将来需要,将使用此选项。您盲目地接受了答案,只是因为它显示了错误消息。理想情况下,复选框必须变为红色,而不是与错误一起选中。接受的答案是正确的,它显示消息,并将复选框标记为红色。这是我的屏幕截图,它只适用于
    enableClientValidation
    ,而不适用于它,并且不需要
    'operator'=>'='='