这个问题有很多问题。但解释永远不会完成。将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',
答案 0 :(得分:1)
Laravel 5使用PSR-4自动加载器,因此只需将模型移动到另一个目录并更改所有模型中的命名空间。
之后,运行composer dumpautoload -o
并继续工作。
如果在运行命令后您的包无效,请尝试在包中使用User
模型的完整命名空间:
'user' => '\App\Entities\User',
另外,更改config\auth.php
中的命名空间(感谢@ user5500750):
'model' => App\Entities\User::class,