如何在Yii2 urlManager中为默认页面创建干净的url

时间:2018-06-27 10:18:45

标签: php routing yii2 yii-url-manager

我的索引规则如下:

[
    'pattern' => 'page/<page:\d+>',
    'route' => 'site/index',
],

它可以工作,但是在分页中,最亮的页面是example/page/1,我更改规则如下:

[
    'pattern' => 'page/<page:\d+>',
    'route' => 'site/index',
    'defaults' => ['page' => 1],
],

现在第一页已变成example.com/page

如何向分页首页显示规则,例如example.com

1 个答案:

答案 0 :(得分:1)

根据您的问题以及您的评论,我建议您另外为空白网址格式(即仅包含域的网址)添加一条规则,该规则以默认的{{1 }}参数值。

defaultRoute

然后,在控制器操作中,您可以测试此url规则是否按以下方式工作:

$page

还请注意,您可以在控制器操作的方法声明中设置默认值,如下所示:

'rules' => [
    [
        'pattern' => '',
        'route' => 'site/index',
        'defaults' => ['page' => 1],
    ],
    [
        'pattern' => 'page/<page:\d+>',
        'route' => 'site/index',
    ],
],

这将允许您简化配置,如下所示:

public function actionIndex($page)
{
    echo '<pre>';
    echo 'site / index / $page ' . print_r($page, true);
    echo '</pre>';
    exit;
}