我在ActiveField小部件中使用radioList方法,我正在尝试找出如何为同一列表中的不同无线电盒设置不同的选项。
我有这个......
$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
设置的所有单选按钮上设置了什么 - 有没有办法为每个按钮设置不同的值?
答案 0 :(得分: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);