Как создать URL-адрес в контроллере, например HtmlHelper

TLDR: как создать URL-адрес в контроллере аналогично тому, как я могу использовать HtmlHelper для создания URL-адресов в представлении?


Проблема:

Я хочу напечатать URL-адрес действия контроллера в своем контроллере (потому что я создаю свою строку JSON в своем контроллере, а не в представлении)

В View я могу использовать $this->Html->url(), но как насчет контроллера?

Должен ли я использовать определенную константу, например APP_DIR + имя контроллера + действие контроллера?)


person mrdaliri    schedule 11.08.2012    source источник


Ответы (1)


Используйте класс Router.

$url = Router::url([
    'controller' => 'Articles',
    'action' => 'index',
    '?' => ['page' => 1],
    '#' => 'top'
]);

или то же самое, но в более распространенном/простом сценарии:

$url = Router::url(['controller' => 'Articles', 'action' => 'index']);

Примечание: в Cake2.x «Статьи» будут писаться строчными буквами.


Документация по маршрутизатору CakePHP 2.x< /сильный>

Документация CakePHP 3.x "Создание URL-адресов"

person Dave    schedule 11.08.2012
comment
Не забудьте использовать класс маршрутизации: use Cake\Routing\Router; - person Tomas Gonzalez; 05.03.2017