Вопрос

Я хочу вызвать действие файла контроллера из файла .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')

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top