Yii2 - 如何从具有相同模块和控制器名称的url中删除模块名称?

时间:2015-08-31 08:49:33

标签: url yii2 yii2-basic-app

我是Yii2的新手。我慢慢习惯了。我正在使用一个模块来构建客户数据。我有一张客户表。我的模块名称是Customer。我的控制器名称是Customer。 最后启用漂亮网址后我的网址结构如下所示。

http://localhost/basic/web/customers/customers
http://localhost/basic/web/customers/customers/create

如何从网址中删除模块名称(客户)? 我想做这样的事情。

 http://localhost/basic/web/customers/
 http://localhost/basic/web/customers/create

我的文件夹结构

模块

----顾客

------控制器

----------- DefaultController

----------- CustomersController

------模型

-----------顾客

------浏览

-----------客户

--------------创建

--------------更新

...

---- Module.php

我甚至不知道如何在urlManager中插入规则: Yii - Hiding module name in URL

'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,           
        'rules' => array(

            '<controller:\w+>/<action:\w+>'=>'module/controller/action',

    ),

1 个答案:

答案 0 :(得分:0)

你所需要的只是this而且要小心,你正在寻找一个Yii1问题。

如果您的模块名称像控制器一样被调用,请尝试:

'urlManager' => [
    'enablePrettyUrl' => true,
    'showScriptName' => false,           
    'rules' =>[
        '<controller:\w+>/<action:\w+>'=>'controller/controller/action',
    ],

我们希望在网址中使用的格式为controller/action

使用<controller:\w+>我们&#34;声明&#34; a&#34;变量&#34;称为控制器,带有共币词,与<action:\w+>相同。

内部Yii将致电<controller> / <controller> / <action>

  

请记住控制器操作是&#34;变量&#34;

如果您希望呼叫始终使用相同的模块:

'rules' =>[
        '<controller:\w+>/<action:\w+>'=>'customers/controller/action',
    ],