Yii 2 中的链接寻呼器小部件生成双倍?因为路由规则


LinkPager widget in Yii 2 generating double ? because of route rule

我已经完成了一个分页系统,并且正在使用LinkPager小部件,但是这是在开始时生成带有??的链接,而不是像它应该的那样?

这似乎是因为我的网址管理器规则:

'foo/<name:[0-9a-zA-Z'-]+>.<some_id:'d+>/?' => 'foo/index',

我需要在末尾包含该?,否则它无法使用结尾斜杠解析页面。

以下是我如何称呼LinkPager

LinkPager::widget(['pagination' => $pagination, 'options' => ['class' => 'clearfix']]);

其中$pagination显然是分页实例。

有什么方法可以阻止它,包括双问号?

问题出在网址规则的这一部分:/? .你不能像这样指定尾部斜杠,正则表达式是错误的,并且在模式之外。您也不能将其设置为可选。

如果要使用尾部斜杠,请将规则声明更改为扩展版本,并将斜杠指定为suffix如下所示:

[
    'pattern' => 'foo/<name:[0-9a-zA-Z'-]+>.<some_id:'d+>',
    'route' => 'foo/index',
    'suffix' => '/',
],

在官方文档的相应部分中阅读有关指定 url 规则的替代格式的更多信息。

还要检查这个问题。