IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Symfony PHP Discussion :

partial et action class [Débutant(e)] [1.x]


Sujet :

Symfony PHP

  1. #1
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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() ;
    Je suis Développeur Senior ouvert aux opportunités
    Mon blog

  3. #3
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    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.

  4. #4
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    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 ?
    Je suis Développeur Senior ouvert aux opportunités
    Mon blog

  5. #5
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    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.

  6. #6
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Je suis Développeur Senior ouvert aux opportunités
    Mon blog

  7. #7
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    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.

  8. #8
    Membre régulier Avatar de kifouillou
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 270
    Points : 84
    Points
    84
    Par défaut
    Bon j'ai réussi avec ce template

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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?

  9. #9
    Membre averti
    Avatar de phpiste
    Homme Profil pro
    Développeur Senior
    Inscrit en
    Septembre 2006
    Messages
    251
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Senior
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 251
    Points : 445
    Points
    445
    Billets dans le blog
    7
    Par défaut
    d'où vient ton $Action; ?
    Je suis Développeur Senior ouvert aux opportunités
    Mon blog

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Liferay] Portlet struts 2 et configuration-action-class
    Par ederf dans le forum Portails
    Réponses: 0
    Dernier message: 13/02/2010, 10h25
  2. Injection EJB on Action class
    Par Freeman84 dans le forum Struts 1
    Réponses: 2
    Dernier message: 28/08/2009, 09h56
  3. Réponses: 2
    Dernier message: 29/05/2009, 18h01
  4. Réponses: 3
    Dernier message: 30/03/2009, 11h52
  5. [1.x] Création de plusieurs objets dans mon action.class.php
    Par lijko dans le forum Symfony
    Réponses: 2
    Dernier message: 30/12/2007, 13h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo