如何在 CakePHP 3 中访问 GET url 的最后一部分

How to access the last part of a GET url in CakePHP 3

我正在构建我的 link 是这样的:

$this->Html->link(
    $this->Icon->fa('plus'),
    ['controller' => 'Questions', 'action' => 'add', $questionnaire->id],
    [
        'title' => 'Add'
    ]
);

这会在我的浏览器上创建所需的图标,link:

<host>/questionnaire/questions/add/2

在“另一边”,例如使用

$this->request->getParam('action')

我可以正确地得到 "add" 作为一个值。

但是我怎样才能访问 2,所以 url 的最后一部分?

我试过

$this->request->getQueryParams()

它 returns 一个空数组。

这取决于您连接的路线。如果有相应的路由具有为该值定义的路由元素,例如

/questionnaire/questions/add/:id

然后您可以通过该元素名称获取值,getParam('id')

如果相应的路由没有该值的专用命名元素,而是 *,这是通过 fallbacks() 连接的后备路由的默认值,那么它将落在pass 参数,getParam('pass'),这是一个尾随值数组,您的值将位于索引 0.

另见