Yii 2 中的 LinkPager 小部件生成双?因为路由规则
LinkPager widget in Yii 2 generating double ? because of route rule
我已经完成了一个分页系统并正在使用 LinkPager 小部件,但是这会在开始时生成带有 ??
的链接,而不是应有的 ?
。
这似乎是因为我的 UrlManager 规则:
'foo/<name:[0-9a-zA-Z\-]+>.<some_id:\d+>/?' => 'foo/index',
我需要在末尾包含 ?
,否则它无法解析带有结尾斜线的页面。
我是这样调用的 LinkPager
:
LinkPager::widget(['pagination' => $pagination, 'options' => ['class' => 'clearfix']]);
其中 $pagination
显然是 Pagination 实例。
有什么方法可以阻止它,包括双问号?
问题出在 url 规则的这一部分:/?
。您不能像那样指定尾部斜杠,正则表达式是错误的并且超出了模式。你也不能让它成为可选的。
如果你想要结尾的斜杠,将规则声明更改为扩展版本并将斜杠指定为 suffix
,如下所示:
[
'pattern' => 'foo/<name:[0-9a-zA-Z\-]+>.<some_id:\d+>',
'route' => 'foo/index',
'suffix' => '/',
],
在 corresponding section 官方文档中阅读更多关于指定 url 规则的替代格式。
还要检查这个 。
我已经完成了一个分页系统并正在使用 LinkPager 小部件,但是这会在开始时生成带有 ??
的链接,而不是应有的 ?
。
这似乎是因为我的 UrlManager 规则:
'foo/<name:[0-9a-zA-Z\-]+>.<some_id:\d+>/?' => 'foo/index',
我需要在末尾包含 ?
,否则它无法解析带有结尾斜线的页面。
我是这样调用的 LinkPager
:
LinkPager::widget(['pagination' => $pagination, 'options' => ['class' => 'clearfix']]);
其中 $pagination
显然是 Pagination 实例。
有什么方法可以阻止它,包括双问号?
问题出在 url 规则的这一部分:/?
。您不能像那样指定尾部斜杠,正则表达式是错误的并且超出了模式。你也不能让它成为可选的。
如果你想要结尾的斜杠,将规则声明更改为扩展版本并将斜杠指定为 suffix
,如下所示:
[
'pattern' => 'foo/<name:[0-9a-zA-Z\-]+>.<some_id:\d+>',
'route' => 'foo/index',
'suffix' => '/',
],
在 corresponding section 官方文档中阅读更多关于指定 url 规则的替代格式。
还要检查这个