Php 模块和参数的Yii2 url规则

Php 模块和参数的Yii2 url规则,php,url-rewriting,yii2,Php,Url Rewriting,Yii2,我试图以这样一种方式配置Yii2 url管理器:如果在url中跳过控制器名称,它应该调用默认控制器以执行操作。我在没有动作参数的情况下成功地实现了这一点。但在操作名称中使用参数时遇到了问题 这是我的路线配置: return [ 'catalog/category/<alias:[\w-]+>' => 'catalog/default/category', 'catalog/<action:\w+>' => 'catalog/default/&l

我试图以这样一种方式配置Yii2 url管理器:如果在url中跳过控制器名称,它应该调用默认控制器以执行操作。我在没有动作参数的情况下成功地实现了这一点。但在操作名称中使用参数时遇到了问题

这是我的路线配置:

return [
    'catalog/category/<alias:[\w-]+>' => 'catalog/default/category',
    'catalog/<action:\w+>' => 'catalog/default/<action>',
];
当我访问下面的url时,它会完全加载。

但当我访问以下url时,它调用了正确的函数,但没有传递$alias值:

更新:

我使用了以下方法来声明模块式url规则:

以下是我在主配置文件中的内容:

'rules' => [
            [
                'pattern' => 'admin/<controller:\w+>/<action:[\w-]+>/<id:\d+>',
                'route' => 'admin/<controller>/<action>'
            ],
            [
                'pattern' => 'admin/<module:\w+>/<controller:\w+>/<action:[\w-]+>/<id:\d+>',
                'route' => 'admin/<module>/<controller>/<action>'
            ],
        ],
“规则”=>[
[
“模式”=>“管理//”,
“路由”=>“管理/”
],
[
“模式”=>“管理//”,
“路由”=>“管理员//”
],
],

管理员工作正常,这是我的第一个模块,因此已经提到了其他规则,以便帮助其他同事使用以下方法检索$alias的价值:

$alias = \Yii::$app->request->get('alias');
但这肯定不是问题的准确答案。我仍然不知道我做错了什么,因为我没有使用前面提到的方法得到值。

它真的很好! [

“name”=>“lang\u country\u seller\u catalog”,
“模式”=>“-/seller/catalog//”,
“路线”=>“卖方/目录//”,
],
[
'name'=>'lang\u country\u seller\u catalog\u attributes',
“模式”=>“-/seller/catalog/attributes/”,
“路由”=>“卖方/目录/属性/”,
],

您还有其他规则吗?显示您的urlManager配置。您是否尝试将正则表达式从[\w-]+更改为其他内容。例如。\w+或不带任何表达式直接使用。@soju查看我的更新question@Hanafi是的,我试过了,
$alias = \Yii::$app->request->get('alias');
                'name' => 'lang_country_seller_catalog',
                'pattern' => '<lang:\w+>-<country:\w+>/seller/catalog/<module>/<controller>/<action>',
                'route' => 'seller/catalog/<module>/<controller>/<action>',
            ],
 [
                'name' => 'lang_country_seller_catalog_attributes',
                'pattern' => '<lang:\w+>-<country:\w+>/seller/catalog/attributes/<module>',
                'route' => 'seller/catalog/attributes/<module>',

            ],