在Laravel 5.5中为Resources使用不同的名称空间模型

时间:2017-11-06 10:00:17

标签: laravel laravel-5.5

喜欢Laravel 5.5中的Resources函数,它在Model的资源上更漂亮,但我将所有模型存储在/App/Models/*中,而不是直接存储在App/* - 文件夹中。 这导致App/Http/Resources/*无效。

"Undefined property: Illuminate\Database\Query\Builder::$map"

中的结果

这是因为我将我的模型存储在一个他无法通过猜测映射到的不同文件夹中。

在何处以及如何定义模型的不同放置?

2 个答案:

答案 0 :(得分:0)

对于我对你的问题的理解,你必须在资源构造函数中注入Model实例,没有神奇的自动绑定,即:

TextStyle

我在这里看不到任何问题,即使是命名空间模型。

答案 1 :(得分:-1)

不确定您用于将模型移动到新Models目录的过程,因此请检查以下几点:

模型的命名空间

每个模型都有:

namespace App\Models;

检查这些文件中的参考资料

  • 应用程序/ HTTP /控制器/认证/ RegisterController.php
  • 配置/ auth.php
  • 配置/ services.php
  • 数据库/工厂/ ModelFactory.php
  • 您的控制器

App/ModelExample更改为App/Models/ModelExample

更新自动加载类图

将“app / models”添加到composer.json的classmap自动加载部分

"autoload": {
    "classmap": [
        "database",
        "app/models"
    ]
}

自动加载文件

运行composer dump-autoload