Bonjour,

le titre est assez évocateur je pense :p.

J'ai pu lire que faire un $this->requestAction était fort lourd et donc fort déconseiller car il recharge le layout etc.

Existe-t-il un méthode plus soft?
Si non j'avais en idée de me crée ma propre fonction qui ferai ceci:

  1. Charge le controller en passer en paramètre
  2. appelle l'action avec les variables
  3. retourne les valeurs voulue.

Cela casse-t-il la logique de cakephp?

Merci de votre aide.

Pikadjou

5 réponses


Lartak
Réponse acceptée

Bonjour pikadjou.
Que je sache, requestAction est le seul moyen d'appeler une action depuis un controller différent, il vaut mieux d'ailleurs l'utiliser lorsqu'elle figure sur plusieurs vues, comme par exemple via un élément comme un menu, une sidebar, etc.

Salut,
je ne sais pas si j'ai compris ton problème mais voilà comment je fais:

Dans mon Mon_Model.php <u></u>
je crée ma fonction

function Nom_Fonction($var) {

$options = array(
'conditions' => array(
$this->alias .......
)
);

return $this->find('all', $options);
}

<u>Dans AppController</u>
$this->set('Variable_Layout', $this->Model->Nom_Fonction($var));

Dans le layout ou le ctp: <u></u>

J'utilise $Variable_Layout

Je sais pas si c'est exactement ce que tu veux, mais je suis tombé sur un article qui disait que "$this->requestAction" était déconseillé.

Voilà... Et bonne continuation...

pikadjou
Auteur

Non ce n'est pas exactement ce que je recherchai :p

En fait il arrive a des moments ou je dois faire appelle a une action d'un autre controller et j'utilise la fonction requestAction, et j'aurai voulu savoir si il existait une autre méthode plus light.

:) Désolé @pikadjou...

Non je n'ai pas encore été confronté à ce soucis sorry.

pikadjou
Auteur

okok merci car j'avais entendu dire que il était préférable de ne pas trop l'utiliser car tes gourmande en ressource.

Merci bcp de votre réponse.