我试图使用多个" radioList"具有相同值的字段,但是当使用相等的值时,它们不会出现。
在我的示例中,值是分数,标签是项目的名称。
请参阅代码:
<?= $form->field($model, 'item_bacen')->radioList([
15 => 'NÃO HÁ REGISTROS DE INADIPLENCIA',
-6 => 'HÁ HISTORICO DE DÍVIDA VENCIDA',
0 => 'HISTÓRICO DE RENEGOCIAÇÃO',
0 => 'DÍVIDA VENCIDA NA DATABASE ATUAL',
0 => 'REGISTRO DE PREJUÍZO',
]) ?>
请注意,我有5个选项,3个具有相同的值。
以下是它的外观:
更新 - 它的工作原理如下:
<?= $form->field($model, 'item_bacen')->radio(['label' => 'NÃO HÁ REGISTROS DE INADIPLENCIA', 'value' => 15, 'uncheck' => null]) ?>
<?= $form->field($model, 'item_bacen')->radio(['label' => 'HÁ HISTORICO DE DÍVIDA VENCIDA', 'value' => -6, 'uncheck' => null]) ?>
<?= $form->field($model, 'item_bacen')->radio(['label' => 'HISTÓRICO DE RENEGOCIAÇÃO', 'value' => 0, 'uncheck' => null]) ?>
<?= $form->field($model, 'item_bacen')->radio(['label' => 'DÍVIDA VENCIDA NA DATABASE ATUAL', 'value' => 0, 'uncheck' => null]) ?>
<?= $form->field($model, 'item_bacen')->radio(['label' => 'REGISTRO DE PREJUÍZO', 'value' => 0, 'uncheck' => null]) ?>
答案 0 :(得分:1)
使用radioList
activeRecord小部件无法执行您所需的操作,因为选项作为数组传递,您不能使用具有不同值的相同数组键(最后一个始终覆盖以前的键)。
您可以在视图中自己编写此字段的HTML或使用不同的唯一键传递选项,然后在收到值时将其映射到您需要的那个:
<?= $form->field($model, 'item_bacen')->radioList([
0 => 'NÃO HÁ REGISTROS DE INADIPLENCIA',
1 => 'HÁ HISTORICO DE DÍVIDA VENCIDA',
2 => 'HISTÓRICO DE RENEGOCIAÇÃO',
3 => 'DÍVIDA VENCIDA NA DATABASE ATUAL',
4 => 'REGISTRO DE PREJUÍZO',
]) ?>
在接收端有类似的东西:
switch ($model->item_bacen) {
case 0:
$model->item_bacen = 15;
break;
case 1:
$model->item_bacen = -6;
break;
case 2:
case 3:
case 4:
$model->item_bacen = 0;
break;
}