Salut! Total CakePHP noob ici.
Mise à jour en bas/
C'est un peu une question deux fois. Dans une vue qui est utilisée pour ajouter des objets user
, je voudrais utiliser un champ déroulant (sélection) dans le formulaire.
Chaque user
appartient à un group
alors quand j'ajoute un utilisateur, je veux une liste déroulante qui contient tous les groupes que l'utilisateur pourrait éventuellement rejoindre. Actuellement, le champ group_id
est un champ de texte. Je sais comment le forcer à être un champ de sélection, mais je ne sais pas comment remplir la sélection avec les noms des groupes par programme.
La méthode actuelle:
echo $form->input('group_id', array(
'1' => 'NameOfGroup1',
'2' => 'NameOfGroup2',
'3' => 'NameOfGroup3')
);
Je veux générer le tableau d'options par programmation bien.
echo $form->input('group_id', $this->Group->find('list'));
Cela ne fonctionne pas cependant. Je reçois une erreur:
Undefined property: View::$Group [APP/views/users/add.ctp, line 8]
Pour moi, cela signifie que je n'ai pas accès à l'objet Group
à l'intérieur de mon point de vue de l'utilisateur.
Comment puis-je accomplir ceci? Encore une fois, je veux le faire par programme afin qu'il se mette à jour lorsque j'ajoute des groupes ou les supprime.
EDIT: Pourquoi cela ne fonctionne-t-il pas?
// In views/users/someaction.ctp
echo $form->input('group_id',
array('options' => $this->formOptionsGroups)
);
// In controllers/users_controller.php
function someaction() {
// Any other logic
$this->set('formOptionsGroups', $this->Group->find('list'));
}
L'erreur est que Group est un objet indéfini.
tutoriels pertinents: http://book.cakephp.org/view/335/Create-a -Posts-Controller et http://book.cakephp.org/view/336/Creating-Post-Views – deceze