2012-02-13 2 views
0

J'ai un problème avec cakePHP. J'ai 4 pages d'affichage .ctp que je veux envoyer des informations à partir de mon contrôleur. Ce ne sont pas des pages statiques, ce sont en réalité des pages dynamiques avec des formulaires utilisateurs où l'utilisateur peut entrer des informations. J'ai une situation où je dois envoyer le même tableau aux 4 vues différentes (parce qu'une partie de chaque vue a besoin de ce tableau pour afficher la même information, dans l'ordre des mots, je veux afficher la même information sur 4 vues différentes). Je sais que normalement je suis censé avoir 1 vue par action de contrôleur, mais cette fois je ne veux pas créer 4 actions similaires pour chacune de mes vues (parce que comme je l'ai dit, tout ce que je fais envoie un tableau à chacun de mes 4 fichiers de vue). Comment puis-je faire cela sans créer 4 actions répétitives dans mon contrôleur pour mes 4 fichiers de vue. J'espère que c'est assez clair ce que j'essaie de faire ici.envoyer la même information à différentes vues gâteauPHP

merci

+0

Comment décririez-vous exposerons ces points de vue? Est-ce un cas où l'action est identique, mais en fonction d'une variable, une vue légèrement modifiée devrait être utilisée? Ou les actions sont-elles complètement différentes, mais les vues ont-elles un élément commun? – deceze

+0

Les actions sont identiques et les vues sont différentes. Fondamentalement, j'envoie le même tableau qui sera affiché sur différentes parties de chaque vue – user765368

+0

Si je vous ai bien, peut-être vous devriez voir ce lien http://book.cakephp.org/1.3/view/1081/Elements – Ehtesham

Répondre

2

Vous pouvez simplement utiliser une action dans le contrôleur et render différentes vues selon une certaine logique:

public function my_action() { 
    $this->set('myVar1', ...); 
    $this->set('myVar2', ...); 
    $this->set('myVar3', ...); 

    if (/* something */) { 
     $this->render('foo'); // renders my_controller/foo.ctp 
    } else if (/* or other */) { 
     $this->render('bar'); 
    } ... 
} 
Questions connexes