将Laravel 5 Eloquent模型移动到自己的目录中

Mar*_*ala 35 php eloquent laravel-5

Laravel 5默认在app文件夹中有ORM模型.我想把它们移到app/models中.当我这样做时,再也找不到这些类了.

如何让Laravel从app/models中找到Eloquent ORM模型?

Sai*_*lay 56

Laravel 5.6+的解决方案


1.将文件移动到新目录

假设您要将模型移动到 app/Models

2.更改模型的名称空间

对于每个模型更改:

namespace App;
Run Code Online (Sandbox Code Playgroud)

namespace App\Models;
Run Code Online (Sandbox Code Playgroud)

3.更改其他文件中的引用

检查这些文件并特别搜索 app\User

  • app/Http/Controllers/Auth/RegisterController.php
  • config/auth.php
  • config/services.php
  • database/factories/ModelFactory.php
  • database/factories/UserFactory.php
  • 你的控制器

App/ModelExample改为App/Models/ModelExample

4.自动加载文件

composer dump-autoload

祝贺你!


luk*_*ter 31

只需创建一个名为的文件夹并将Models文件移入其中.之后,将模型的命名空间从刚更改AppApp\Models(更新用法)并运行composer dump-autoload.

  • 如果使用它,请不要忘记更改用于身份验证的UserModel.另见:http://laravel-recipes.com/recipes/11/changing-your-authentication-model (5认同)

Dal*_*lin 14

添加"app/models"到composer.json的classmap autoload部分

"autoload": {
    "classmap": [
        "database",
        "app/models"
    ]
}
Run Code Online (Sandbox Code Playgroud)

  • 我有这个完全相同的问题,并发现解决方案在于确保引用100%正确.将"app/models"更改为"app/Models"为我修复了它. (3认同)