我正在尝试在YII 2.0 Framework 中使用Activeform checkboxlist小部件
在我的例子中,我有一个名为"list"的数组,它包含将显示为checkboxlist的语言的名称,现在我可以做到这一点,但我希望在表单加载时选中复选框。
$list = [0 => 'PHP', 1 => 'MySQL', 2 => 'Javascript'];
$list2 = [0,2];
使用以下行,我可以使用HTML助手类获得我想要的内容:
<?= Html::checkboxList('CuisineId',$list2,$list); ?>
但我希望能够使用Activeform Widget CheckboxList来完成这项工作,根据文档,它将以以下方式使用:
静态复选框列表($items,$options=[])
因此,在我的情况下,我已经了解了如何通过以下方式传递$items的参数:
<?= $form->field($record, 'CuisineId')->checkboxlist($list);?>
但现在我不知道如何传递允许复选框被选中的参数。
好的,我从yiiframework论坛本身得到了解决方案。
解决方案只是添加以下代码行,就成功了!:
$record->CuisineId = $list2;
求解
数据库
查看
控制器
$model = $this->findModel($id);
$model->INDEXES =ArrayHelper::getColumn($model->publicationIndexes, 'INDEXES_ID');
if ($model->load(Yii::$app->request->post())) {$model->save();}
查看(_form)
<?= $form->field($model, 'INDEXES')->checkboxList(ArrayHelper::map(Indexes::find()->all(), 'ID', 'NAME')) ?>