Comme il est indiqué, quand je l'utilise dans une coquille:Ne peut pas utiliser requestAction de Shell dans CakePHP 2.5
$this->requestAction('/sites/zaz/option1');
L'action ne se déclenche pas. Pour tester cela, j'ai essayé:
public function zaz($option1 = null) {
CakeLog::write('acces', 'action triggered');
return 'got it !';
}
Et l'action n'est pas terminée et il n'y a aucun journal écrit. Tous mes autres journaux fonctionnent.
J'essayé:
$this->requestAction('/sites/actionwhichdoesntexist/option1');
Et je suis une erreur indiquant que l'action n'existe pas.
J'ai vraiment besoin d'utiliser requestAction, car j'ai un modèle/contrôleur et cette action vérifie généralement qu'une ressource est toujours active. Je veux utiliser requestAction afin de gérer en douceur la « demande » aspect, de sorte que je vais construire quelque chose de plus robuste:
if(empty($this->request->params['requested']))
$this->redirect(array('controller'=>'proxies', 'action'=>'index', 'admin'=>true));
else
return true;
J'ai essayé avec 2.4.1 et 2.5, rien ne se passe juste, pas de sortie est donnée, même si je mets un 'die()' dans l'action.
2 choses 1) vous accédez probablement à une action _differente_, ou le composant beforeFilter ou interférant - il dépend des routes définies et de la logique beforeFilter/component 2) ** N'utilisez pas requestAction du tout ** pour ce que vous décrivez - mettez la logique dans une méthode modèle et appelez la méthode modèle. – AD7six
Merci, c'était en effet beforeFilter qui manquait (besoin d'être connecté). Mais il n'y a pas de données liées aux données/sql dans l'action que je veux effectuer, c'est pourquoi je ne voulais pas le mettre dans un modèle. – mattspain