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


how to validate checkbox and radio button in yii1

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

  <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墙。如果我留下语言单选按钮未选中,它应该显示验证错误。因此,我在News模型中创建了以下验证规则:

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

然而,它不工作。为什么?

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

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