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();

Articles connexes