4

我刚刚通过这个命令将 Yii2-User 模块/Dektrium 安装到我的 Yii2-app-basic 应用程序中

composer require "dektrium/yii2-user:0.9.*@dev"

配置/控制台.php

return [
    .
    .
    'modules' => [
        'gii' => 'yii\gii\Module',
        'user' => [
            'class' => 'dektrium\user\Module',
            ],
        ],
    .
    .
]

配置/web.php

'components' => [
    .
    .
    /*
        'user' => [
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
        ],
    */
    'modules' => [
        'user' => [
            'class' => 'dektrium\user\Module',
            ],
    ],
    .
    .
]

之后,我运行此命令$ php yii migrate/up --migrationPath=@vendor/dektrium/yii2-user/migrations来更新数据库架构。

但是,当我http://localhost/mylawsuit/yii/web/index.php?r=user/registration/register在浏览器中运行时。它抛出错误:

无效配置 – yii\base\InvalidConfigException

“模块”组件的配置必须包含“类”元素。

错误截图

在此处输入图像描述

而且,当我改变web.php

'user' => [
            'identityClass' => 'app\models\User',
            'enableAutoLogin' => true,
        ],
    /*
    'modules' => [
        'user' => [
            'class' => 'dektrium\user\Module',
            ],
    ],

在我的浏览器中输入http://localhost/mylawsuit/yii/web/index.php?r=user/registration/register,它显示

未找到 (#404)

网页未找到。

截屏

在此处输入图像描述

我没有得到我做错的地方。请帮我纠正。

4

2 回答 2

3

我得到了答案。

我在'modules'=>[...]里面写'components'=>[...],这是错误的。

现在,配置/web.php

$config = [
  'id' => 'basic',
  'basePath' => dirname(__DIR__),
  'bootstrap' => ['log'],
  'components' => [
   .
   .
   .
   ],
  'modules' => [
    'user' => [
      'class' => 'dektrium\user\Module',
    ],
  ],
  'params' => $params,

现在,它工作正常。

于 2015-10-12T11:09:13.383 回答
0

如果你重写了用户模型并且 ['/user/security/login'] 使用 404 重定向到 '/user/login',打开 web 配置并查找 'urlManager' 组件。如果您启用了 enblePrettyUrl,请查看规则。问题就在那里 - 更改或删除。

于 2016-04-13T18:12:50.127 回答