Пусть одна функция контроллера вызывает другую функцию контроллера в CakePHP 1.2

Как мне получить мой Search контроллер с doSearch() внутренняя функция для вызова getTitles() функция в моем Titles контроллер?

4 ответа

Решение

Короткий ответ: ты не должен этого делать. Вы должны перенести это в свою модель Title или, возможно, поместить в компонент или помощник для повторного использования.

Если вы уверены, что хотите вызвать контроллер напрямую, Cake предоставляет метод для этого

http://book.cakephp.org/2.0/en/controllers.html

Нет причин переходить на другой контроллер.

Контроллер должен в основном вызывать методы из моделей. поэтому должна быть Модель Заголовка, которая содержит метод, который вам нужен.

Разместите свой код, если вам нужна дополнительная помощь.

Создание функциональности, в которой вы хотите повторно использовать компоненты, не всегда работает хорошо, как Cakephp, не вводит Models и find(), и устанавливает ->$this и т. Д. Еще один путь - сделать вашу базовую функциональность основной функцией, а затем вернуть $ результаты, назовите эту функцию как $results =$this->function_within_controller(); таким образом, вы можете повторно использовать функциональность таким образом. Я сталкиваюсь с множеством ошибок, когда иногда пытаюсь использовать компоненты, в Cakephp компоненты хороши для использования автономных скриптов php и кода.

Таким образом, ответ для дальнейшего использования:

$this->requestAction('/controller/action/params');
Другие вопросы по тегам