Yii2 Comment lister les valeurs des options de liste déroulante à partir de la base de données sans valeurs en double?
utilisateur466061
Pour les catégories dropdowList, je génère des valeurs à partir de la base de données, dans cette colonne main_cat a une valeur électronique deux fois, dans la liste déroulante également, elle se répète deux fois, comment l'afficher une seule fois?
+--------+-------------+---------+
| cat_id | main_cat | sub_cat |
+--------+-------------+---------+
| 1 | Electronics | Phones |
+--------+-------------+---------+
| 2 | Electronics | TVs |
+--------+-------------+---------+
| 3 | Furniture | Sofa |
+--------+-------------+---------+
J'ai essayé le code ci-dessous mais cela répète l'électronique dans la liste déroulante distinct()
ne fonctionne pas.
<?= $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',
]) ?>
Comment sélectionner la colonne main_cat sans répéter les mêmes valeurs?
Yasar Arafath
Utilisé comme
Categories::find()->groupBy('main_cat')->all();