2014-06-09 3 views
0

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.

+0

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

+0

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

Répondre

0

Comme indiqué dans le premier commentaire, j'aurais dû vérifier la fonction beforeFilter.

Questions connexes