2011-07-07 1 views
5

Je veux utiliser "getpoll", qui est l'action du contrôleur des utilisateurs, dans un autre contrôleur (contrôleur d'événements).Comment appeler l'action du contrôleur dans un autre contrôleur dans cakephp?

Comment l'utiliser?

à l'avance grâce ... à tous ...

+0

Est-ce que cette action a une vue? – 8vius

+0

duplication possible de [CakePHP 2.3.8: Appel d'une autre fonction de contrôleur dans CronController.php] (http://stackoverflow.com/questions/19344988/cakephp-2-3-8-calling-another-controller-function-in- croncontroller-php) –

Répondre

3

Vous devez écrire la requête db de l'action getPoll() comme méthode dans le sondage modèle, de cette façon dans votre contrôleur utilisateur, vous pouvez simplement appeler $this->User->Poll->getPolls() correctement, $this->Event->Poll->getPolls() de votre contrôleur d'événements.

Par exemple, dans votre modèle de sondage:

public function getPoll($userId = null) { 
    return $this->find('all', array(..)); 
} 
4

Vous pouvez utiliser la méthode requestAction du contrôleur:

$this->requestAction('/comments/latest'); 

vous pouvez l'appeler différemment en fonction de vos besoins pour plus de détails cliquez sur le lien :

Lien vers CookBook: Controller requestAction Method

+0

Vous ne devriez pas utiliser requestAction pour quelque chose d'aussi simple que cela, le bon conseil serait de mettre la méthode getPoll dans le modèle * user *. – Dunhamzzz

0

Les états de livres de cuisine:

Si elle est utilisée sans mise en cache requestAction peut conduire à de mauvaises performances. Il est rarement approprié d'utiliser dans un contrôleur ou un modèle. http://book.cakephp.org/2.0/en/controllers.html

Et this après montrer une approche différente et mieux

Questions connexes