繁体   English   中英

Laravel:如何使用 pivot 表从另一个表中检索信息?

[英]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');
}

如果你想得到一个formUser ,那么:

public function getFormWithUser()
{
    $form = Form::with('groupe')->first();
}

*注意:但我对User model 中的form关系有点困惑,反之亦然,如果这种关系是Many to Many (因为有groupe pivot 模型),它们如何直接相互关联?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM