将App \ User更改并配置到新目录

时间:2016-04-19 23:24:34

标签: php laravel laravel-5.2

这个问题有很多问题。但解释永远不会完成。将App \ User文件移动到App \ Entities \ User

应该采取哪些步骤

我已经安装了Laravel 5.2并且已将默认的App \ User(app / User.php)移动到文件夹App \ Entities,因此将User.php文件中的命名空间更改为命名空间App \ Entities;因此,要访问用户模型,我必须使用App \ Entities \ User我也在config \ auth.php中更改了此设置

'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => App\Entities\User::class,
        ],

        // 'users' => [
        //     'driver' => 'database',
        //     'table' => 'users',
        // ],
    ],

问题大多数软件包都无法使用这个新目录,所以我想知道是否还有其他我缺少的设置。例如,我已经安装了tymondesigns / jwt-auth软件包,但现在我收到了这个错误:

ReflectionException in Container.php line 738:
Class App\User does not exist

软件包无法找到App \ Entities \ User并使用默认的App \ User我认为在此文件中软件包尝试加载用户模型[vendor \ tymon \ src \ Providers \ JWTAuthServiceProvider.php]

$this->app['Tymon\JWTAuth\Providers\User\UserInterface'] = function ($app) {
    return $app['tymon.jwt.provider.user'];
};

该软件包有一个config.php文件,但该设置也无效;

/*
|--------------------------------------------------------------------------
| User Model namespace
|--------------------------------------------------------------------------
|
| Specify the full namespace to your User model.
| e.g. 'Acme\Entities\User'
|
*/

'user' => 'App\Entities\User',

1 个答案:

答案 0 :(得分:1)

Laravel 5使用PSR-4自动加载器,因此只需将模型移动到另一个目录并更改所有模型中的命名空间。

之后,运行composer dumpautoload -o并继续工作。

如果在运行命令后您的包无效,请尝试在包中使用User模型的完整命名空间:

'user' => '\App\Entities\User',

另外,更改config\auth.php中的命名空间(感谢@ user5500750):

'model' => App\Entities\User::class,