我想獲取id&courseName從課程表,id,name及mob從user表和id&FilePath從files表中,其中userId程序表具有的值id在user表&fileId當然表的具有值id在filestable.The以下代碼沒有顯示從任何資料用戶模型,它顯示null為user。任何幫助深表感謝。
課程表
| 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');
}
uj5u.com熱心網友回復:
您混淆了user關系的 ownerKey 和外鍵。嘗試更新與此的關系
public function user(){
return $this->belongsTo(User::class, 'userId', 'id');
}
uj5u.com熱心網友回復:
讓我解釋一下 elquent 如何運行“with”
- 首先進行查詢以獲取您需要的所有課程
- 其次,對您需要的每個關系進行另一個查詢以獲取它并將其添加到它的位置
為此,如果課程屬于用戶,您需要選擇此關系的列,您必須加載 userId 以加載與 fileId 相同的用戶資料
如果你像這樣加載 userId 和 fileId ,你的問題就會解決
Course::with('user:id,name,mob','files:id,FilePath')->get();
uj5u.com熱心網友回復:
試試這個,讓我知道它是否有效
Course::with([
'user' => function($q)
{
$q->select('id', 'name' , 'mob');
},
'files' => function($q)
{
$q->select('id', 'filePath');
}
])->get(['id','courseName']);
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/322932.html
