2017-04-07 66 views
1

我使用ActiveField小部件中的radioList方法,我試圖找出如何在同一列表中設置不同的無線電盒不同的選項不同的選項。使用單選列表法ActiveField在Yii2提供每單選框

我有這個...

$form->field($model, 'some_question')->inline()->radioList(
    [ 
     1 => Yii::t('general', 'Yes'), 
     0 => Yii::t('general', 'No') 
    ], 
    ['itemOptions' => ['value' => 1, 'data-foo' => 'bar']] 
)->label(false); 

但是,不管我在itemOptions設置被設定所有單選按鈕 - 是有沒有辦法爲每一個設置不同的值?

回答

1

使用調用item這一點。

$form->field($model, 'some_question')->inline()->radioList(
    [ 
     1 => Yii::t('general', 'Yes'), 
     0 => Yii::t('general', 'No') 
    ], 
    ['item' => function ($index, $label, $name, $checked, $value) { 
     switch ($value) { 
      // different options per value 
      case 1: 
       $options = [ 
        'data-foo' => 'bar' 
       ]; 
       break; 
      case 0: 
       $options = [ 
        'data-next' => 'smthng' 
       ]; 
     } 
     return \yii\bootstrap\Html::radio($name, $checked, array_merge($options, [ 
       'value' => $value, 
       'label' => \yii\bootstrap\Html::encode($label), 
      ])); 
    }] 
)->label(false);