首页 > 解决方案 > 在视图 laravel 5.7 中访问预先加载的对象

问题描述

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

我有这个查询:

    $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返回错误。

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

标签: laravellaravel-5eloquenteager-loadinglaravel-5.7

解决方案


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


推荐阅读