我想使用checkboxList
来显示来自数据提供者的数据。
我的查看文件:
$offices = Offices::findMyOffices();
echo Html::checkboxList('name', [], $offices);
我的模型文件:
public static function findMyOffices()
{
$dataProvider = new ArrayDataProvider([
'allModels' => 'SELECT id_office ...'
]);
return $dataProvider;
}
但是视图显示了带有 sql查询而不是 sql查询结果的复选框列表:
答案 0 :(得分:0)
我解决了using sqlDataProvider
:
查看:
$offices = Offices::findMyOffices();
echo Html::checkboxList('name', [], ArrayHelper::map($offices, 'id_office', 'name_office'));
型号:
public static function findMyOffices()
{
$dataProvider = new sqlDataProvider([
'sql' => 'SELECT id_office ...'
]);
return $dataProvider->getModels();
}
答案 1 :(得分:0)
ArrayDataProvider需要一个项目数组。您可以在活动查询中添加-> asArray()。
$dataProvider = new ArrayDataProvider([
'allModels' => [['id' => 1, 'title' => 'xxx, ...], ...],
]);
我最喜欢为下拉列表获取数据的是:
MyModel::find()->select('name', 'id')->indexBy('id')->column()