Yii2 如何从数据库中列出没有重复值的下拉列表选项值?
Yii2 How to list out dropdownlist option values from database without duplicate values?
对于类别 dropdowList,我从数据库中生成值,因为 main_cat 列有两次电子值,在下拉列表中也重复两次,如何只显示一次?
+--------+-------------+---------+
| cat_id | main_cat | sub_cat |
+--------+-------------+---------+
| 1 | Electronics | Phones |
+--------+-------------+---------+
| 2 | Electronics | TVs |
+--------+-------------+---------+
| 3 | Furniture | Sofa |
+--------+-------------+---------+
我试过下面的代码,但它重复下拉列表中的电子设备 distinct()
不工作。
<?= $form->field($model, 'ad_cat_id',
'template' => '<label class="col-sm-3 control-label">Category</label><div class="col-sm-9">{input}{error}</div>',
])->dropDownList(
ArrayHelper::map(Categories::find()->distinct()->all(), 'cat_id', 'main_cat'),
[
prompt' => 'Please select main category',
]) ?>
如何在 select main_cat 列中不重复相同的值?
用作
Categories::find()->groupBy('main_cat')->all();
对于类别 dropdowList,我从数据库中生成值,因为 main_cat 列有两次电子值,在下拉列表中也重复两次,如何只显示一次?
+--------+-------------+---------+
| cat_id | main_cat | sub_cat |
+--------+-------------+---------+
| 1 | Electronics | Phones |
+--------+-------------+---------+
| 2 | Electronics | TVs |
+--------+-------------+---------+
| 3 | Furniture | Sofa |
+--------+-------------+---------+
我试过下面的代码,但它重复下拉列表中的电子设备 distinct()
不工作。
<?= $form->field($model, 'ad_cat_id',
'template' => '<label class="col-sm-3 control-label">Category</label><div class="col-sm-9">{input}{error}</div>',
])->dropDownList(
ArrayHelper::map(Categories::find()->distinct()->all(), 'cat_id', 'main_cat'),
[
prompt' => 'Please select main category',
]) ?>
如何在 select main_cat 列中不重复相同的值?
用作
Categories::find()->groupBy('main_cat')->all();