appeler l'action du contrôleur à partir du fichier CTP
Question
Je souhaite appeler une action du fichier contrôleur à partir d'un fichier .ctp dans cakephp.Est-il possible?oui, alors comment ?s'il vous plaît, aidez-moi.par ex.J'ai une action dans le contrôleur.utilisateurs_controller.php
<?php
class UsersController extends AppController {
function get_category() {
....
}
}
?>
Je veux l'appeler à partir du fichier /question/index.ctp.
La solution
La bonne façon de faire est:
$this->requestAction(array('controller' => 'users', 'action' => 'get_category'));
Création du the CakePHP way
url augmentera les performances (il ne devra pas utiliser le routeur). Aussi sera toujours le travail, tout en faisant comme:. « Utilisateurs / get_category » pourrait causer des ennuis quand vous n'êtes pas dans la page d'index
Il ne doit être utilisé dans des éléments (avec cache en particulier), le cas est différent -. Reefer ce Travis Leleu
a écrit dans son commentaire
Autres conseils
Il convient de noter que vous ne devriez pas compter sur requestAction comme une pratique courante. requestAction est un appel très épuisant et ne doit être utilisée que si vous ne pouvez pas organiser votre code de toute autre manière.
Idéalement, vous enverriez les données dont vous avez besoin de votre action du contrôleur à la vue plutôt que de rappeler à votre contrôleur.
function my_action() {
...
$this->set('category', $this->getCategory());
}
vous pouvez l'appeler comme $this->requestAction('controller'=>'users','action'=>'get_category')