2013-02-18 82 views
1

所以我有這樣的代碼......嗯,這僅僅是一個樣品Yii的單選按鈕不同型號

<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 2013-02-18 16:28:50

+0

該代碼只是一個例子:D但是是的 – Illyasviel 2013-02-18 16:31:22

回答

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 2013-02-18 16:40:13

+0

這應該引導你走向正確的方向。 – topher 2013-02-18 16:57:43