Je vais dire que je suis aussi embêté, je ne vois pas ce que tu veux faire, dans ton formulaire, tu as juste deux zones, aucune pour la saisie d'un groupe, ni de liste de groupe.
Version imprimable
Je vais dire que je suis aussi embêté, je ne vois pas ce que tu veux faire, dans ton formulaire, tu as juste deux zones, aucune pour la saisie d'un groupe, ni de liste de groupe.
hello,
je vais tenter de m'expliquer plus clairement.
mon formulaire que si trouvera en backend sert a lier des utilisateurs avec des voitures.
Lorsque j'édite une voiture en backend (son nom=> le premier champs), j'ai en dessous la listes des utilisateurs stockés en bd => le 2ème champs.
Mais dans cette liste j'ai tout les utilisateurs de l'application. j'aimerai n'avoir que la liste des utilisateurs d'un groupe donné. Mais le but n'est pas que l'utilisateur choisisisse le groupe.
C'est comme ci j'avais une liste de cours à assigner à des prof en backend. Et que la base de donnée contient tout les users, profs, élèves, concierges. Je veut uniquement la listes des users profs lorsque j'édite un cours.
OK, ça j'avais compris,
Mais d'où viens le nom du groupe dont la liste doit être affichée ?
je pensais mettre le nom (ou l'id du groupe dans le fichier de config app.yml).
Une fois que tout les données initiales sont créée je fixe ce groupe.
Il ne doit pas pouvoir être modifiable par la personne qui gèrera le site en backend.
Je sais que je suis pas forcèment très clair dans mes explications :roll:, je suis un peu trop a fond dans mon projet :mouarf:
En réfléchissant à tout celà, je me pose le postulat suivant :
-l'utilisation du générateur d'administration n'est pas forcèment adapté à toutes les situations
-j'ai remarqué le "extends autoVoitureActions" je n'ai encore pas tout compris sur quoi c'était construit dans le framework
-si ce que l'on veut est trop spécifique, il est mieux de gébérer le module en CRUD et de l'adapter ensuite à ses besoin.
suis-je à côté de la plaque ?
Bien que je ne voie pas d'intérêt d'avoir un seul groupe fixé et non modifiable pour les utilisateurs (mais peut-être, y a-t-il des utilisateurs qui n'ont pas le droits aux voitures), la solution est très simple.
Tu vas créer, dans ton objet du modèle user une méthode (getUserGroupe) qui te retourne les utilisateurs à prendre en compte. Création de la requête idoine, récupération et hydratation des données.
Ensuite, dans ton form, tu va utiliser le widget choice de la manière suivante
La méthode getUserGroupe() peur ressembler aCode:
1
2
3
4
5 $this->widgetSchema['user'] = new sfWidgetFormChoice(array( 'choices' => Doctrine_Core::getTable('User')->getUserGroupe(), 'expanded' => true, ));
(non testé)Code:
1
2
3
4
5
6
7
8 public function getUserGroupe() { $q = new Doctrine_Core::createQuery-> from('User u')-> where('u.gropue = ?', sfConfig::get('app_user_toto_groupe') ); return $q->execute; }
hello,
j'ai du partir sur un autre projet quelques jours.
Alors en effet j'ai un seul groupe, donc une seule série d'utilisateur qui ont droit aux voitures.
d'après ta réponse j'ai 2 questions :
1. le modèle user ou je dois crééer une méthode, tu parle de
apps/backend/lib/myUser.php
ou de
lib/model/doctrine/sfDoctrineGuardPlugin/sfGuardUser.class
je perçois très bien le rôle du plugin, mais j'ai de la peine à cerner le role exact de myUser.php
2. Si actuellement j'ai utilisé l'admin générator de symfony pour le module voiture/user en backend. dans ce que tu me propose je dois construire by hand mon module.
La méthode est a créer sur l'objet du modèle de la table user (dans lib/model/doctrine).
L'objet myUser permet de personnaliser, pour une application donnée, le fonctionnement standard de l'objet user. Lui rajouter des méthodes par exemple pour stocker et récupérer le nom de l'utilisateur.
Je n'ai pas tous relu et ne sais pas si on en a parlé, mais vous devriez, toi et ton chef de projet, sérieusement envisager d'utiliser le plugin sfDoctrineGuardPlugin.