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