J'ai une page de formulaire que l'un des champs est nommé type
et il est enum('lost', 'found')
et dans ce formulaire, je veux que ce champ soit une liste déroulante que seulement a ces deux options lost
et found
.
l'une des options proposées utilisait ce à vueYii2 - Faire une liste déroulante de la structure db pas les données insérées dans db
<?= $form->field($model, 'type')->dropDownList(
$items,
['prompt'=>'']
et ce dans le contrôleur
$items = ArrayHelper::map(Ads::find()->all(), 'id', 'type');
mais comme vous le savez est juste en utilisant les données insérées dans la db et si Je clique sur la liste déroulante, il va charger toutes les options perdues et trouvées qui sont dans la base de données.
Y a-t-il un moyen de dire à yii d'utiliser la structure et les règles db au lieu des données?
Je dois préciser que dans le modèle, je n'ai trouvé aucune règle indiquant la partie enum, est-ce que c'est correct? Pourquoi est-ce comme ça?
J'ai utilisé Gii pour les créer.
public function rules()
{
return [
[['type', 'explanation', 'image', 'cost', 'province_id', 'address'], 'required'],
[['type', 'explanation', 'image', 'address'], 'string'],
[['cost'], 'integer'],
[['province_id'], 'string', 'max' => 20],
[['province_id'], 'exist', 'skipOnError' => true, 'targetClass' => Province::className(), 'targetAttribute' => ['province_id' => 'name']],
];
}
ce n'est pas ce que GII a créé, c'est ce que je l'ai fait pour cela. Gii créé de la manière habituelle. Comme ceci: '= $form-> field ($ model, 'type')?>' – Amir
Êtes-vous sûr que le champ 'type' est enum datatype? –
ouais, mais comme je l'ai dit je ne comprends pas pourquoi dans le modèle il n'y a rien qui soit lié à la partie enum. J'ai posté les règles dans le modèle. – Amir