2013-02-18 2 views
1

Так что я этот код ... ну это просто образецYii RadioButton с различными моделями

<div class="row"> 
    <?php echo $form->labelEx($model,'First_Session'); ?> 
    <?php echo $form>radioButton($model,'first_session',array('c'=>'')/**array('size'=>45,'maxlength'=>45)*/); ?> 
    <?php echo $form->error($model,'first_session'); ?> 
</div> 

<div class="row"> 
    <?php echo $form->labelEx($model,'Second_Session'); ?> 
    <?php echo $form->radioButton($model,'second_session',array('c'=>'Checked')/**array('size'=>45,'maxlength'=>45)*/); ?> 
    <?php echo $form->error($model,'second_session'); ?> 
</div> 

Так что мой вопрос заключается в том, чтобы применить радиокнопку здесь .... см, у меня есть два поля, первый и второй сеанс, но то, что мне нужно сделать, - это когда первый сеанс отмечен, второй сеанс не может быть. Я все еще новичок в yii.

+0

ли вход в силе, если ни '' first_session' ни second_session' проверяется? – topher

+0

этот код является всего лишь примером: D, но да – Illyasviel

ответ

0

Использовать CHtml::radioButtonList() вместо radioButton(). Вы можете объявить дополнительную переменную $session_val в своей модели и использовать ее для установки значения выбранного «сеанса» перед проверкой.

Модель

class Model1{ 
    .... 
    public $session_val; 
    .... 
    public function beforeValidate(){ 
     unset($this->first_session); 
     unset($this->second_session); //unset first_session and second_session 
     if(isset($this->session_val)) 
      $this->$session_val=true; //set first_session or second_session 
     else 
      $this->addError(...); 
     return parent::beforeValidate(); 
    } 

    public function rules(){ 
     return array(
      ... 
      array('session_val','safe'), 
      ... 
     ); 
    } 

вид

<?php echo $form->labelEx($model,'session_val'); ?> 

<?php echo $form->radioButtonList($model,'session_val',array('first_session'=>'First Session','second_session'=>'Second Session'));?> 
+0

У меня есть два поля в той же модели, когда я хочу проверить первый сеанс, второй сеанс не должен быть или не может быть проверен, потому что первый из них уже проверен, моя проблема в том, что я не могу понять, как это сделать. – Illyasviel

+0

Это должно привести вас в правильном направлении. – topher