Yii2:复选框规则不适用于注册条款和条件

时间:2014-11-05 13:32:01

标签: 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;'>
<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();
?>

3 个答案:

答案 0 :(得分:34)

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

 ['acordul_tc', 'required', 'on' => ['register'], 'requiredValue' => 1, 'message' => 'my test message']

这意味着该属性是必需的,必须等于1,否则会在您的消息中显示错误。

答案 1 :(得分:0)

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

    echo $form->field($model, 'acordul_tc', 
                    ['options' => ['tag' => 'span'], 
                    template' => "{input}"]
                )
              ->checkbox(['checked' => false, 'required' => true]);
    
  4. 以下是解释所有内容的图片。

  5. enter image description here

答案 2 :(得分:0)

模型中的

&gt;规则功能

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