【问题标题】:Accessing eager-loaded objects in view laravel 5.7在视图 laravel 5.7 中访问预先加载的对象
【发布时间】:2019-03-26 10:42:53
【问题描述】:

我有几个模型链接到一个模型调用 我已经定义了所有关系并且它们工作得很好,但是我在急切加载的结果方面遇到了问题。

我有这个疑问:

    $callDetails =\App\Call::with(['client','subissues','subissues.issue','partner','district'])
                      ->where('call.id', '=', $id)
                      ->get();

在修补程序返回时效果很好

{"id":17400,
"client":{"id":18317,"name":"Yad  Kal","phonenumber":"0991234567","age":27,"gender":"Male"},
"district":{"id":1,"name":"Dedza"},
"comments":" He complained ",
"completeness":"complete",
"perpetrator":1,
"partner_id":119,"status":1,
"subissues":[{"id":1378,"name":"Issues of Dissatifaction","description":"Issues of Dissatifaction","issue":{"id":6,"name":"Emergency Response (World)","description":"Emergency response"},"pivot":{"call":17400,"subissue":1378}}],"partner":{"id":119,"name":"World"}} 

但是当尝试使用$callDetails->client 访问客户端时,它只返回客户端ID。 $callDetails->client->name 返回错误。

我不知道做错了什么,但所有急切加载的结果都让我头疼!

【问题讨论】:

    标签: laravel laravel-5 eloquent eager-loading laravel-5.7


    【解决方案1】:

    确保您的表格列中没有名称为 client 的列,或者您的模型中没有名称为 client 的任何属性。当关系和字段/属性具有完全相同的名称(在您的情况下为 client)时,可能会导致问题,因此在这种情况下,您应该重命名关系或字段/属性

    【讨论】:

      猜你喜欢
      • 2019-07-13
      • 2016-08-09
      • 1970-01-01
      • 1970-01-01
      • 2014-10-28
      • 1970-01-01
      • 2010-12-15
      • 2016-04-18
      • 1970-01-01
      相关资源
      最近更新 更多