这个问题有很多问题。但是解释永远不会完成。将文件\ 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',
Laravel 5使用PSR-4自动加载器,因此只需将模型移至另一个目录并更改所有模型中的名称空间。
在那之后,奔跑composer dumpautoload -o
和一切都应该工作。
如果在运行命令后您的包无法使用,请尝试User
在包中使用模型的完整名称空间:
'user' => '\App\Entities\User',
另外,更改名称空间config\auth.php
(为此感谢@ user5500750):
'model' => App\Entities\User::class,
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句