同类型的数组命名的参数yii2 URL规则(yii2 url rule with named par

2019-09-28 11:46发布

如何创建一个URL规则,与数组类型的命名参数?

现在我有这个,工作:

    'urlManager' => [
        'rules' => [
            'page/<id:\w+>' => 'cms/page/view',
        ],
    ],

映射页面/欢迎'到module=cmscontroller=pageaction=view ,PARAM $id=welcome

现在我想有这样的网址,用文件夹名部分可变数目: /page/folder1/folder2/.../folderN/pagefile

一个动作:

function actionPage(array $folders, string $id) {
    // expecting:
    //   $folders == [ 'folder1', 'folder2', ..., 'folderN']
    //   $id      == 'pagefile'
}

不知道怎么写的规则。 我无法找到该规则的语法的任何文件。

解决方法是热烈欢迎!

Answer 1:

据我所知传递给控制器​​动作的参数必须是字符串或INT因为控制器动作参数上简单的GET参数工作。

如果你真的想通过文件夹的阵列中的GET请求应该路由,等之后: controller/action/id?folder[]=folder1name&folder[]=folder2name

因此,$ ID是在控制器的动作范围,但你必须为“手动”经历$_GET['folder']来获取可变数量是在查询字符串的文件夹。



文章来源: yii2 url rule with named parameter of type array