1

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

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

ETC

如何从 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',

    ),
4

1 回答 1

0

你所需要的就是这个,小心,你正在寻找一个 Yii1 问题。

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

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

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

我们用cointains 词<controller:\w+>“声明”了一个名为controller的“变量” ,与<action:\w+>.

Yii 内部会调用<controller>//<controller><action>

记住控制器动作是“变量”

如果您想始终调用相同的模块,您将使用:

'rules' =>[
        '<controller:\w+>/<action:\w+>'=>'customers/controller/action',
    ],
于 2015-08-31T09:10:45.047 回答