[英]Laravel : How to retrieve information from another table using a pivot table?
問題是我有 forms 並且我想獲得它的所有成員。
我創建了一個表 pivot 組,它從表 forms中檢索 form_id 和從表users 中檢索 user_id 。 但是當我嘗試檢索信息時,我得到了這個: Attempt to read property "firstname" on bool (View: /.../resources/views/groupes/list.blade.php)
在我的模型中,我有:Forms:
public function user()
{
return $this->belongsTo(User::class);
}
public function groupe()
{
return $this->belongsToMany(Groupe::class);
}
用戶:
public function forms()
{
return $this->hasMany(Forms::class);
}
public function groupe()
{
return $this->belongsToMany(Groupe::class);
}
list.blade.php ($forms 對應於我之前在所有表單中創建的一個單一表單):
@foreach($forms->user as $user)
{{$user->firstname}}
@endforeach
Groupe
是您的 pivot 表,其中包含 user_id 和 form_id。 如文檔所述,如果 pivot 表未按字母順序連接兩個相關的 model 名稱(在這種情況下應為form_user
),則需要包含表名,即groupe
:
public function groupe(): BelongsToMany
{
return $this->belongsToMany(Groupe::class, 'groupe');
}
如果你想得到一個form
的User
,那么:
public function getFormWithUser()
{
$form = Form::with('groupe')->first();
}
*注意:但我對User
model 中的form
關系有點困惑,反之亦然,如果這種關系是Many to Many
(因為有groupe
pivot 模型),它們如何直接相互關聯?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.