如何在yii1中验证复选框和单选按钮

时间:2016-11-01 09:58:24

标签: php yii

我的视图文件中有以下代码:

  <div class="form-group snetwork">
        <h3>Post to Social Network Wall</h3>
        <label>Choose Social Networks:</label>
        <div class="row">
            <ul class="social_items">
                <li><span class="label label-info"><?php echo $form->checkbox($model, 'fb')?>  Facebook</span></li>
                <li><span class="label label-warning"><?php echo $form->checkbox($model, 'twitter')?>  Twitter</span></li>
                <li><span class="label label-success"><?php echo $form->checkbox($model, 'telegram')?>  Telegram</span></li>
            </ul>
        </div>

        <label>Choose Language:</label>
        <div class="row">
            <?= $form->radioButtonList($model, 'language', $model->getLan('language'), array(
                'template' => '<div class="radio " style="float: left; padding-right: 10px; padding-left: 30px">{input}{label}</div>',
                'separator' => '', 'uncheckValue'=>null,
            )); ?>
            <?php echo $form->error($model,'language'); ?>
        </div>
    </div>

案例如下:当我创建一个新帖子并勾选社交网络复选框和语言单选按钮时,它应该使用指定的语言将新闻发布到Facebook墙上。如果我将语言单选按钮保持未选中状态,则应显示验证错误。因此,我在新闻模型中创建了以下验证规则:

 public function rules()
        {
            ...
            return array(
            array('language', 'ext.YiiConditionalValidator.YiiConditionalValidator',
                    'if' => array(array('fb, twitter, telegram', 'compare', 'compareValue' => 1)),
                    'then' => array(
                        array('language', 'required'),
                    ),),

但是,它不起作用。为什么呢?

1 个答案:

答案 0 :(得分:0)

请在每个复选框后面添加以下行以显示错误消息。

<?php echo $form->error($model,'fb'); ?>
<?php echo $form->error($model,'twitter'); ?>
<?php echo $form->error($model,'telegram'); ?>