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

MVC PHP Discussion :

Appeler une méthode Action d'un autre controller


Sujet :

MVC PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    xtrimsky
    Invité(e)
    Par défaut Appeler une méthode Action d'un autre controller
    Bonjour,

    J'ai un petit problème.
    Il faut que j'appelle une méthode d'un Action Controller, à partir d'un autre Action Controller.
    J'ai regarder dans les cours et dans la doc de Zend Framework, mais je n'arrive pas à trouver comment faire sa.

    Es ce que quelqu'un pourrait svp m'aiguiller un peu?

    Merci pour tout aide .
    Dernière modification par julp ; 27/05/2008 à 02h03. Motif: Utilisez le bouton Résolu en bas ...

  2. #2
    Membre éclairé
    Inscrit en
    Septembre 2007
    Messages
    360
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 360
    Par défaut
    dans une vue tu peux appeler un controller par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->action('action','controller','module');
    , sinon tu à la méthode depuis ton controlleur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->_redirect('module/controller/action');
    ou encore
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->_forward($action,$controller,$modules,array $params)
    . A toi de choisir la méthode qui te convient.

  3. #3
    xtrimsky
    Invité(e)
    Par défaut
    a merci, j'avais trouvé action dans la doc, mais c'est le redirect dont j'avais besoin ^^

  4. #4
    xtrimsky
    Invité(e)
    Par défaut
    euh par contre le redirect à l'air de changé de controller completement.
    et le forward à l'air de finir cette action puis de passé a une autre action.

    Moi ce que j'aurais besoin sa serait de faire quelque chose comme sa:

    action1
    {

    -du code
    -effectuer "action 2"
    -continuer ensuite ce code

    }

    action2
    {
    -du code
    }

    il n'y a pas de moyen de faire sa? je peu théoriquement m'en passé je pense, mais sa sera très compliqué :s

  5. #5
    Expert confirmé
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 55

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Par défaut
    Bonjour,

    Et en factorisant le code, tout simplement ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    public action1()
    {
      // du code...
      DoSomething()
      // du code ...
     
    }
     
    public action2()
    {
      DoSomething()
    }
     
    private DoSomething()
    {
      // Du code...
    }
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  6. #6
    xtrimsky
    Invité(e)
    Par défaut
    Le problème dans ton exemple, c'est que dans action 1 faut que j'execute du code après le DoSomething().

    et que DoSomething ce trouve dans un autre controlleur que action1 (obligatoirement).
    et que je ne peu pas mettre du code en plus dans le DoSomething().

    Et que le seul moyen que j'ai trouvé pour appelé une action dans un autre controleur sa arrete la suite de la premiere action.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
     
     
    //Controlleur 1
     
    public action1()
    {
      // du code...
      DoSomething() //appele d'un autre controlleur
      //en utilisant redirect ou forward, le code en dessous ne sera pas executé (si j'ai bien compris)
      // du code ...
     
    }
     
    //Controlleur 2
     
    public action2()
    {
      DoSomething()
    }
     
    private DoSomething()
    {
      // Du code...
    }
    le seul moyen que je vois pour l'instant, c'est de tout restructurer completement, mais sa m'embette pas mal car c'est pas moi qui a codé le 2eme controlleur.

Discussions similaires

  1. Appeler une méthode de la vue au controler
    Par topolino dans le forum AngularJS
    Réponses: 11
    Dernier message: 18/02/2014, 20h59
  2. Réponses: 4
    Dernier message: 29/04/2013, 21h27
  3. Réponses: 8
    Dernier message: 02/06/2008, 11h56
  4. Appeler une méthode d'un autre servlet
    Par Mister Nono dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 28/09/2006, 23h09
  5. Problème pour appeler une méthode d'une autre classe
    Par tse_tilky_moje_imja dans le forum Général Python
    Réponses: 7
    Dernier message: 03/03/2006, 13h33

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