Pregunta

Quiero llamar a una acción de archivo de controlador desde un archivo .ctp en cakephp. ¿Es posible? sí, que cómo? por favor ayuda. por ejemplo, Tengo una acción en el controlador. users_controller.php

<?php
class UsersController extends AppController {

    function get_category() {
        ....
    }

}
?>

Quiero llamar desde un archivo /question/index.ctp.

¿Fue útil?

Solución

La forma correcta de hacerlo es:

$this->requestAction(array('controller' => 'users', 'action' => 'get_category'));

Creación de la the CakePHP way url aumentará el rendimiento (que no tendrá que utilizar router). También será siempre el trabajo, mientras que hacerlo como: "Los usuarios / get_category" podría causar algunos problemas cuando no estás en la página de índice

Se pueden emplearse solamente en los elementos (con caché en especial), si el caso es diferente -. Reefer a lo que escribió en su comentario Travis Leleu

Otros consejos

Debe tenerse en cuenta que no se debe confiar en requestAction como una práctica común. requestAction es una llamada muy exigente y sólo debe usarse si no se puede organizar el código de cualquier otra manera.

Idealmente, debes enviar los datos que necesita de su acción del controlador a la vista en vez de volver a llamar a su controlador.

function my_action() {
   ...
   $this->set('category', $this->getCategory());
}

se le puede llamar como $ this-> requestAction ( 'controller' => 'usuarios', 'action' => 'get_category')

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top