2011-07-07 31 views
5

Quiero utilizar "getpoll", que es la acción del controlador de usuarios, en otro controlador (controlador de eventos).¿Cómo llamar a la acción del controlador en otro controlador en cakephp?

¿Cómo puedo usarlo?

de antemano gracias ... a todos ...

+0

¿Esta acción tiene un punto de vista? – 8vius

+0

posible duplicado de [CakePHP 2.3.8: Llamar a otra función de controlador en CronController.php] (http://stackoverflow.com/questions/19344988/cakephp-2-3-8-calling-another-controller-function-in- croncontroller-php) –

Respuesta

3

debe escribir la consulta db de la acción getPoll() como método en la encuesta modelo, de esa manera en su controlador de usuario que sólo puede llamar a $this->User->Poll->getPolls() para agarrar las urnas, y si las asociaciones están configurados correctamente, $this->Event->Poll->getPolls() desde su controlador de eventos.

Por ejemplo, en el modelo de encuesta:

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

Puede utilizar el método requestAction del controlador:

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

se le puede llamar de forma diferente en función de sus necesidades para obtener más información busque el enlace :

Enlace al libro de cocina: Controller requestAction Method

+0

No debe usar requestAction para algo tan simple como esto, el consejo correcto sería poner el método getPoll en el * modelo * de usuario. – Dunhamzzz

0

Los estados de libros de cocina:

Si se utiliza sin el almacenamiento en caché requestAction pueden conducir a un mal desempeño. Rara vez es apropiado usarlo en un controlador o modelo. http://book.cakephp.org/2.0/en/controllers.html

Y this después mostrar un enfoque diferente y mejor

Cuestiones relacionadas