[英]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.