|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Nouveau Membre du Club
![]() Étudiant Inscription : août 2006 Messages : 49 ![]() |
Bonjour,
J'ai généré un module au moyen de l'admin generator et lui ai ajouté des actions pour faire un traitement particulier des données de la table. Parmi celles-ci, se trouve un formulaire (dérivé directement de sfForm). J'ai donc deux actions : ListEditPoste et ListCreatePoste qui fonctionnent correctement quand on les appelle depuis un lien autogénéré via le generator.yml : Code :
Code :
"<form action="<?php echo url_for('copisim_periode/ListCreatePoste?id='.$copisim_periode->getId()); ?>" method="post"> Code :
J'ai aussi testé (en vain - la route n'existe pas) avec sf_route : Code :
<form action="<?php echo url_for(array('sf_route' => 'copisim_periode_list_create_poste', 'sf_subject' => $copisim_periode)); ?>" method="post"> Bref, faut-il que je crée une route supplémentaire (sachant qu'elle existe déjà forcément quelque part) ? ou bien abandonner l'admin generator (qui pourtant est fantastique) pour ce module (du boulot en perspective) ? ou bien (mais je m'y refuse) copier le lien en dur dans le template ? Au final, j'aimerais surtout comprendre... |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Qu'as tu dans ton fichier route.yml ?
Quel version de symfony ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 | ||||
|
Nouveau Membre du Club
![]() Étudiant Inscription : août 2006 Messages : 49 ![]() |
Symfony 1.4.8.
Mon routing.yml était celui par défaut à la création de l'appli de backend et des admin_modules. Le but étant aussi de découvrir les possibilités de l'admin generator. L'erreur que j'obtenais était due au fait que les routes par défaut étaient présentes et donc à la lecture, symfony interprétait la route : J'ai donc viré (commenté pour le moment) ces routes et il n'en demeure pas moins qu'il ne trouve toujours pas l'action : Code :
Il me vient une idée en écrivant : est ce que l'admin generator ne créerait pas des routes uniquement pour la méthode GET ? Ce qui expliquerait pourquoi la route existe bel et bien quand on y accède par lien web mais pas lorsque c'est un form avec method=post qui y fait référence... Pour info, ce qui nous intéresse encore dans le routing.yml : Code :
Edit bis : à la lecture rapide de la doc de la classe sfDoctrineRouteCollection, pour pouvoir prendre directement en compte ma route, il faudrait que je crée une classe similaire (voire dérivée ?)... Je pense que je vais me contenter d'une route ajoutée à la main dans le routing.yml pour le moment. |
||||
|
|
00
|
|
|
#4 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Si tu veux bien utiliser le système de route, il est important de désactiver les routes par défaut, ou, au pire, de les laisser en dernière lignes du fichier.
Le fichier route.yml est parsé du début à la fin, ce qui implique deux choses :
C'est aussi pour cela qu'il est plus intéressant, dans la génération des URL de passer par le nom de la route plutôt que de laisser le moteur chercher par lui même. Plus rapide et plus sur. Pour les routes collections elles sont en réalité découpées en de multiple route avec un surfixe pour les identifier, tu trouveras cela facilement a partir du CLI de symfony et de l'option qui traite les routes. Ta méthode pour avoir une route spécifique en plus de celles de la collection me semble la bonne et est celle préconisée par symfony dans jobeet. La modification de l'objet collection ne peut se justifier que si tu as un très grand nombre de cas similaires dans tes applications.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
Copyright © 2000-2012 - www.developpez.com