如何在控制器中创建类似于HtmlHelper的URL

10

TLDR: 我该如何在控制器(Controller)中创建URL,类似于在视图(View)中使用HtmlHelper创建URL?


问题:

我想在我的控制器(Controller)中打印一个控制器操作的URL(因为我是在控制器内创建JSON字符串,而不是在视图中)。

在视图(View)中,我可以使用 $this->Html->url(),但是在控制器(Controller)中该怎么做呢?

我应该使用类似于定义常量(例如APP_DIR + 控制器(Controller)名称 + 控制器(Controller)操作名)的方法吗?

1个回答

37

使用 Router 类。

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

或者,相同的事情,但在更常见/简单的场景中:

$url = Router::url(['controller' => 'Articles', 'action' => 'index']);
注意:在Cake2.x中,“Articles”将会是小写字母。

CakePHP 2.x 路由文档

CakePHP 3.x '生成URL' 文档


3
请记得使用路由类:use Cake\Routing\Router; - Tomas Gonzalez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接