【问题标题】:Yii2 -How to remove Module name from url with same module and controller name?Yii2 - 如何从具有相同模块和控制器名称的 url 中删除模块名称?
【发布时间】:2015-08-31 08:49:32
【问题描述】:

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

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

如何从 url 中删除模块名称(客户)? 我想做这样的东西。

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

我的文件夹结构

模块

----客户

------控制器

-----------默认控制器

-----------客户控制器

-----型号

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

-----观看次数

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

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

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

...

----模块.php

即使遵循以下内容,我也不知道如何在 urlManager 中插入规则: Yii - Hiding module name in URL

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

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

    ),

【问题讨论】:

    标签: url yii2 yii2-basic-app


    【解决方案1】:

    您只需要this 就可以了,请注意,您正在寻找一个 Yii1 问题。

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

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

    我们希望在 Url 中使用的格式是controller/action

    对于&lt;controller:\w+&gt;,我们“声明”了一个名为controller的“变量”,其中包含单词,&lt;action:\w+&gt; 也是如此。

    Yii 内部会调用&lt;controller&gt;/&lt;controller&gt;/&lt;action&gt;

    记住 controlleraction 是“变量”

    如果您希望始终调用您将使用的相同模块:

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

    【讨论】:

    • 我试过了。但没用。未找到 (#404) 错误。
    猜你喜欢
    • 2015-06-17
    • 1970-01-01
    • 2023-03-22
    • 2020-04-04
    • 1970-01-01
    • 2012-05-17
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    相关资源
    最近更新 更多