Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/07/2008, 10h25   #1
Membre du Club
 
Avatar de kifouillou
 
Inscription : septembre 2005
Messages : 270
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : septembre 2005
Messages : 270
Points : 51
Points : 51
Envoyer un message via MSN à kifouillou
Par défaut partial et action class

Bonjour,

je suis nouveau sur le framework symfony et j'en encore un peu de mal avec certains automatismes :

Pour expliquer :

j'ai une liste de proposition, quand je clique sur le bouton visualiser cela m'amène sur une page avec les infos correspondant à la proposition sélectionnée. J'ai un bouton Editer cette proposition, qui m'amène vers évidemment un formulaire de modif.

Donc tout cela est contenu dans une seule action. Ce qui fait que mon formulaire de modif est dans un partial spécifique et les infos en visu son dans un autre partial. Tout cela appelé dans un template success evidemment.

Mon template est comme sa :

Code :
1
2
3
4
5
6
7
 
<?php if($edit): ?>
<?php include_partial('module/edit_proposition',array('form_proposition'=>$form_proposition, 'edit'=>$edit));?>
<?php else:?>
 
<?php include_partial('module/show_proposition', array('form_proposition' => $form_proposition, 'proposition' => $proposition, 'form_negociation'=>$form_negociation, 'edit'=>$edit  ));?>
<?php endif;?>
Mon lien vers le formulaire d'édition est dans mon partial _showproposition, comme ceci :
Code :
1
2
 
<?php echo link_to('Editer cette proposition', 'module/show', array('edit' => $edit))?>
Donc mon problème c'est qu'il me dit :

Code :
1
2
 
Undefined variable: edit in C:\wamp\www\e_habitat\espace\apps\extranet\modules\proposition\templates\showSuccess.php on line 2 et 6
ce qui correspond à :

Code :
1
2
3
4
 
<?php include_partial('module/edit_proposition',array('form_proposition'=>$form_proposition, 'edit'=>$edit));?>
 
<?php include_partial('module/show_proposition', array('form_proposition' => $form_proposition, 'proposition' => $proposition, 'form_negociation'=>$form_negociation, 'edit'=>$edit  ));?>
Puis ce que je voudrais savoir c'est comment récupérer cela dans le actionclass. Car avant j'avais 2 action donc pas besoin de partial, mais la le même action va faire 2 traitements. Donc comment faire? J'ai un peu du mal encore entre les template et les action.

Merci d'avance.
kifouillou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 10h42   #2
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
Tu peut faire tous cela avec une seule action et une seule template sans recours même aux partiales
juste dans l'action tu test si c'est une opération de modif ou d'insertion de nouveau enregistrement
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
//Si l'id de la preposition n'est pas envoyé donc une opeartion d'insertion
 if (!$this->getRequestParameter('id_user'))
    {
      $p = new Proposition();
    }
    else
    {//Si l'id de la preposition est envoyé donc une opeartion de modif
      $p= PropositionPeer::retrieveByPk($this->getRequestParameter(identifinat envoyé));
      $this->forward404Unless($p);
    }
 
//traitement 
$p->save() ;
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 10h58   #3
Membre du Club
 
Avatar de kifouillou
 
Inscription : septembre 2005
Messages : 270
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : septembre 2005
Messages : 270
Points : 51
Points : 51
Envoyer un message via MSN à kifouillou
Salut,

Mais en fait c'est pas les mêmes formulaires c'est pour cela que j'avais fais des partials.

En fait sur ma liste j'ai donc le bouton visualiser qui m'emmène dans mon mon action show. Une fois dans ce show, j'ai donc toutes les infos dans des labels comme c'est juste un visu et j'ai également un lien vers le formulaire d'édition qui donc lui est dans un partial. Don c'est pour cela que j'ai fais un if dans mon template et que je suppose qu'il faut en faire un aussi sur le action. Voila, j'espère que sa éclaircit un peu plus.
kifouillou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h09   #4
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
ah je comprend tu veut faire une seule template pour l'affichage et l'édition de ta préposition
Pour éviter ton problème essayer de décortiquer un peut ta logique; en fin pour moi faire deux partials ( si tu ne va pas les utiliser dans une autre place ) ou faire deux templates séparés c'est exactement pareil

Si non ta variable $edit existe bien dans ta page showSuccess ?
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h14   #5
Membre du Club
 
Avatar de kifouillou
 
Inscription : septembre 2005
Messages : 270
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : septembre 2005
Messages : 270
Points : 51
Points : 51
Envoyer un message via MSN à kifouillou
Ben justement non.

Je fais juste le if $edit et selon cela ben j'afffiche telle ou telle partiale. Par contre je passe edit en paramètre dans l'include partial et je sais pas trop si c'est utile.

Mais pour que edit existe je sais pas trop si je dois définir cela dans le template ou dans le action. Pourrais tu me donner un pti exemple?

Encore merci pour tes réponses.
kifouillou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h28   #6
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
Bon comme je te le dise un partial est utile seulement lorsque vous allez recours dans une autre place genre d'un edit avec ajax ou ...
si non l'erreur

Code :
1
2
 
Undefined variable: edit in C:\wamp\www\e_habitat\espace\apps\extranet\modules\proposition\templates\showSuccess.php on line 2 et 6
dit bien que ta variable n'est plus défini enfin je pense que tu veut faire un switch case pour inclure la bon partial donc essaye un peut de revoir cette logique et tu va y arriver
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 11h44   #7
Membre du Club
 
Avatar de kifouillou
 
Inscription : septembre 2005
Messages : 270
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : septembre 2005
Messages : 270
Points : 51
Points : 51
Envoyer un message via MSN à kifouillou
d'accord. Mais là on ma demandé de travailler avec des partials. Et je dois bien avouer qu'en ce vendredi je manque de logique. Car il me semble donc bien que si je veux afficher tel ou tel partial il faut une condition. Donc là en l'occurence je teste avec $edit. Mais c'est comment déclarer cela j'avoue que vraiment je suis dans les choux. En fait j'ai l'impression que mon problème c'est purement une difficulté a définir ce $edit. Parce que je pense qu'il faut que le fasse une fois dans le action et une fois dans mon partial. Là je sais que c'est pas terrible mais faudrait que tu m'aide sur la logique. J'ai peur que ce soit surtout là que cela coince.
kifouillou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 12h38   #8
Membre du Club
 
Avatar de kifouillou
 
Inscription : septembre 2005
Messages : 270
Détails du profil
Informations personnelles :
Âge : 28

Informations forums :
Inscription : septembre 2005
Messages : 270
Points : 51
Points : 51
Envoyer un message via MSN à kifouillou
Bon j'ai réussi avec ce template

Code :
1
2
3
4
5
6
7
8
9
 
global $Action;
 
  switch ($Action)
  {
    case 'edit': include_partial('proposition/edit_proposition',array('form_proposition'=>$form_proposition, 'proposition' => $proposition, 'edit'=>$edit));       break;
    case 'visu': include_partial('proposition/show_proposition', array('form_proposition' => $form_proposition, 'proposition' => $proposition, 'form_negociation'=>$form_negociation ));  break; 
    default : include_partial('proposition/show_proposition', array('form_proposition' => $form_proposition, 'proposition' => $proposition, 'form_negociation'=>$form_negociation ));
  }

Par contre comment je dois interagir maintenant avec le action class? Pour qu'il me fasse le traitement du edit dans le même execute que la visu?
kifouillou est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/07/2008, 14h33   #9
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
d'où vient ton $Action; ?
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h40.


 
 
 
 
Partenaires

Hébergement Web