[英]Multiple Laravel Eloquent Relationship not showing data from all relationships
我想获取id
& courseName
从课程表, id
, name
及mob
从user
表id
和FilePath
从files
表中,该userId
课程表中有值id
在user
表和fileId
当然表中有值files
表中的id
。下面的代码没有显示来自用户模型的任何数据,它为user
显示null
。 任何帮助深表感谢。
课程表
ID | 课程名 | 用户身份 | 文件编号 |
---|---|---|---|
Course::with('user:id,name,mob','files:id,FilePath')
->select ('id','courseName')
->get();
课程模式
public function files(){
return $this->belongsTo(Uploads::class,'fileId','id');
}
public function user(){
return $this->belongsTo(User::class,'userId','id');
}
试试这个,让我知道它是否有效
Course::with([
'user' => function($q)
{
$q->select('id', 'name' , 'mob');
},
'files' => function($q)
{
$q->select('id', 'filePath');
}
])->get(['id','courseName']);
您混淆了user
关系的 ownerKey 和 foreignKey。 尝试更新与此的关系
public function user(){
return $this->belongsTo(User::class, 'userId', 'id');
}
让我解释一下 elquent 如何运行“with”
为此,如果课程属于用户,您需要选择此关系的列,您必须加载 userId 以加载与 fileId 相同的用户数据
如果你像这样加载 userId 和 fileId,你的问题就会解决
Course::with('user:id,name,mob','files:id,FilePath')->get();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.