如何在控制器中创建一个URL,如HtmlHelper

时间:2012-08-11 14:17:30

标签: cakephp html-helper cakephp-2.x cakephp-3.x

TLDR:如何在Controller中创建一个URL,类似于如何使用HtmlHelper在视图中创建URL?


问题:

我想在我的控制器中打印控制器动作的url(因为我在我的控制器中创建了我的JSON字符串,而不是在视图中)

View中,我可以使用$this->Html->url(),但在控制器中呢?

我应该使用定义的常量,如APP_DIR +控制器名称+控制器操作吗?)

1 个答案:

答案 0 :(得分:34)

使用Router类。

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

或同样的事情,但在更常见/简单的情况下:

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

注意:在Cake2.x中,“文章”将为小写。


<强> CakePHP 2.x Router documentation

<强> CakePHP 3.x 'Generating URLs' documentation