无法获取加入多个 Eloquent 关系的数据
Posted
技术标签:
【中文标题】无法获取加入多个 Eloquent 关系的数据【英文标题】:Unable to get data on joining Multiple Eloquent Relationships 【发布时间】:2021-12-09 15:57:31 【问题描述】:我想显示来自Files
表的id
,FileName
和FilePath
和来自User
表的id
和name
以及course
表列-id
,@ 987654330@ & aboutCourse
。但它从files
和user
关系返回null
。我该如何解决这个问题?
$course=Course::with(['files:id,FileName,FilePath','user:id,name'])
->select('id','courseDisplayName','aboutCourse')
->where('userId',$request->tutorId)
->get();
课程模型
public function files()
return $this->belongsTo(Files::class, 'fileId', 'id');
public function user()
return $this->belongsTo(User::class, 'userId', 'id');
输出如下:
[
"id": 20,
"courseDisplayName": "asasasb",
"aboutCourse": null,
"files": null,
"user": null
,
"id": 14,
"courseDisplayName": "yuu",
"aboutCourse": "kljkl",
"files": null,
"user": null
]
【问题讨论】:
【参考方案1】:您还必须选择外键 fileId
和 userId
才能使用 files
和 user
的关系,因此查询将类似于
$course=Course::with(['files:id,FileName,FilePath','user:id,name'])
->select('id','courseDisplayName','aboutCourse', 'userId', 'fileId')
->where('userId',$request->tutorId)
->get();
【讨论】:
以上是关于无法获取加入多个 Eloquent 关系的数据的主要内容,如果未能解决你的问题,请参考以下文章
无法在 Controller Laravel belongsToMany 关系中获取正确的数据 - Laravel / Eloquent [关闭]