Контроллер вызова действие от файла CTP
Вопрос
Я хочу вызвать действие файла контроллера из файла .CTP в CakePhp. Является ли это возможным? Да, чем как? пожалуйста помоги. например, у меня есть действие в контроллере. users_controller.php.
<?php
class UsersController extends AppController {
function get_category() {
....
}
}
?>
Я хочу назвать это из файла /question/index.ctp.
Решение
Правильный способ сделать это:
$this->requestAction(array('controller' => 'users', 'action' => 'get_category'));
Создание URL the CakePHP way
увеличит производительность (ей не придется использовать маршрутизатор). Также всегда будет работать, пока это нравится: «Пользователи / Get_Category» могут привести к некоторым проблемам, когда вы не на странице индекса.
Он должен использоваться только в элементах (особенно с кешем), если дело отличается - повторять к чему Travis Leleu
написал в своем комментарии.
Другие советы
Следует отметить, что вы не должны полагаться на запросу в качестве обычной практики. Запрос представляет собой чрезвычайно налоговый вызов и должен использоваться только в том случае, если вы не можете организовать свой код любым другим способом.
В идеале вы отправляете необходимые вам данные из вашего контроллера на просмотр, а не обратно в свой контроллер.
function my_action() {
...
$this->set('category', $this->getCategory());
}
Вы можете назвать это как $ this-> Запрос («Контроллер» => «Пользователи», «Действие» => 'get_category')