【问题标题】:urlmanager with modules not working in yii2.0带有模块的 urlmanager 在 yii2.0 中不起作用
【发布时间】:2015-01-27 01:58:01
【问题描述】:

这与后端文件夹中的模块创建有关。例如,我创建了一个模块名称为“api”。并且还成功地为这些模块创建了控制器。

这是我的 urlmanager 代码:

  'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'enablePrettyUrl' => true,
            'rules' => [

                '<module:\w+>/<controller:\w+>/<action:\w+>'=>'<module>/<controller>/<action>',
                '<module:\w+><controller:\w+>/<action:update|delete>/<id:\d+>' => '<module>/<controller>/<action>',

            ],
        ]

当我以“api”访问模块时,控制器为“国家”,操作为“创建”

http://local2host.com/bootstrap/backend/web/index.php/api/country/create 它显示 404 Not Found 错误

我哪里出错了?

【问题讨论】:

    标签: php yii2


    【解决方案1】:

    第二条规则永远不会起作用,而且您不必定义规则,正常的规则将起作用。所以这个

    'urlManager' => [
        'class' => 'yii\web\UrlManager',
        'enablePrettyUrl' => true,
        'showScriptName' => false,
    ],
    

    将使此链接 /website.com/core/contact/index 正常工作。

    但我不确定为什么你的路线没有遵循第一条规则……奇怪。应该的。

    【讨论】:

    • 问题的正确答案。也帮助了我。
    【解决方案2】:

    迟到总比不做好。

    要使模块正常工作,您需要将其附加到配置中:

    'modules' => [
    ......
        'modulename' => [
            'class' => 'app\modules\modulename\Module',
        ],
    ......
    ],
    

    【讨论】:

    • 这没有提供问题的答案。他询问了 Yii2 模块的“urlManagement”。您的回答显示了如何通过 Yii2 配置包含模块。
    • 这是部分答案,但很重要,因为除非您指定上述内容,否则您的模块规则将不起作用,因此@Mihai P.没有这个答案是不完整的。
    猜你喜欢
    • 2014-12-15
    • 2017-08-26
    • 2015-03-29
    • 1970-01-01
    • 1970-01-01
    • 2018-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多