La création de "sélectionner" les listes à l'aide de FormHelper dans CakePHP
J'ai deux modèles, Category
et Point
. Les associations sont définies comme suit:
Category hasMany Point
Point belongsTo Category
J'aimerais, lors de l'ajout d' Points
à ma base de données, pour être en mesure de sélectionner la catégorie à laquelle il appartient depuis un <select>
zone, avec le reste des données du formulaire.
Où aurais-je besoin de set
la liste des catégories et comment pourrais-je le faire? Et comment puis-je produire de la boîte de sélection?
Je suppose que cela pourrait être fait avec
$form->input('categorieslist',array('type'=>'select')); //categorieslist needs
//setting somewhere.
Vous devez vous connecter pour publier un commentaire.
Dans le contrôleur:
Dans la vue:
Point
modèlebelongsTo
votreCategory
modèle.Également de généraliser un peu:
En Vue de l'accès à la Forme helper
Ci-dessus rendra, sélectionnez l'entrée avec deux options. Vous pouvez également placer une option vide comme le premier élément. Le passage d'une valeur de true va tout simplement ajouter une option vide avec une valeur vide pour le début de la options de rendu dans le code HTML.
Vous pouvez passer d'une chaîne à l' "vide" pour faire afficher un texte personnalisé que le champ clé de l'option vide.
Un dernier exemple, vous pouvez également sélectionner une option à l'aide de la touche sélectionnée. La valeur doit correspondre à la valeur de l'un de l'sélectionnez options, pas la clé.
À partir du Modèle
Model->find( 'list', array( ... ));
retournera toujours un tableau formaté pour une utilisation avec la sélection des options de la boîte. Si vous transmettez des données à votre vue stockée dans une variable avec une minuscule pluriel le nom du modèle, qui est,( $this->set( 'categories', $categories );
, alors vous aurez automatiquement générer des listes déroulantes pour les modèles en utilisant le helper form dans la vue et de le transmettre un index de données du même nom de modèle au singulier, forme suffixée par "_id".Aziz répondre au n ° 2 est l'exemple de ce automagic coups de pied dans.