如何将 laravel 5.1 用户模型移动到 \App\Models\User?

2022-08-30 16:52:07

是否可以告诉Laravel我已经移动了用户.php模型?

拉拉维尔 5.1

FatalErrorException in EloquentUserProvider.php line 126: 
Class '\App\User' not found

我真的不热衷于在laravel 5.1中将所有模型放在App文件夹的根目录中,所以我创建了一个新文件夹,并将所有模型php文件放在其中:\App\Models

我更改了身份验证控制器以使用新的,并更正了模型文件夹中的所有模型文件。use App\Models\User;

但是,当我加载页面时,我遇到了上面提到的错误。

(其他模型文件当然工作正常,因为它是我的代码访问它们,它只是来自laravel 5.1的预构建的身份验证内容)


答案 1

您需要修改文件Project/config/auth.php'model'=> AppName\Models\User::class,


答案 2

例如,如果您创建一个文件夹(例如应用程序/模型),则有两种方法可以移动模型:

1) Laravel5 样式 = 使用 PSR4

命名空间 所有带有命名空间的模型文件 使用其完整命名空间访问任何位置的模型,例如:App\Models;\App\Models\User::find(1);

2) 拉拉维尔4风格

使用作曲家自动加载器加载模型。在 composer.json 中添加:

"autoload": {
        "classmap": [
            "database",
            "app/Models"            
        ],
        ...

无需为模型指定命名空间。它们位于根命名空间中 在命名空间文件中,您可以以 \User::find(1) 方式访问它们;

额外注意事项:

  • 如果更改用户模型的命名空间,则必须更新config\auth.php => 'model'=> App\Models\User::class

  • 摆脱长命名空间的最简单方法是在php文件的开头导入模型,例如:use App\Models\User;

链接:


推荐