簡體   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