Yii 2中的LinkPager小部件生成双?因为路线规则

时间:2015-01-19 15:22:32

标签: php yii yii2 yii-url-manager

我已经完成了分页系统并使用了LinkPager窗口小部件,但这会在开始时生成与??的链接,而不是?

这似乎是因为我的UrlManager规则:

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

我需要在结尾处包含?,否则无法解析带有结尾斜杠的页面。

以下是我致电LinkPager的方式:

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

$pagination显然是Pagination个实例。

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

1 个答案:

答案 0 :(得分:1)

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

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

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

详细了解在官方文档corresponding section中指定网址规则的替代格式。

同时检查此question