簡體   English   中英

Laravel多對多關系

[英]Laravel many-to-many relationships

我正在嘗試在Web應用程序中處理許多關系。 我有一個稱為組的表和一個稱為用戶的表。

許多用戶可以處於許多組中,並且許多組可以具有許多用戶。 也就是說,可以有無限數量的用戶和組,並且用戶可以根據需要屬於任意多個組。

我已經成功創建了一個數據透視表,並且我的模型如下所示。

User.php

<?php

用戶擴展\\ Eloquent類{

protected $fillable = [];

protected $table = 'user';

public function groups()
{
    return $this->belongsToMany('Group');
}

}

Group.php

類組擴展\\口才{

protected $fillable = [];

public function users()
{
    return $this->belongsToMany('User');
}

}

我正在嘗試與Eloquent ORM保持聯系,我正在做以下事情,

public function get($id)
{

    //dd(Activity::log());
    $group = Group::find($id);

    return $group->users;

}

這將返回如下所示的結果,

[
{
    "id": "1",
    "firstname": "User",
    "surname": "One",
    "email": "email@domain.com",
    "password": "password",
    "remember_token": null,
    "created_at": "-0001-11-30 00:00:00",
    "updated_at": "-0001-11-30 00:00:00",
    "pivot": {
        "group_id": "1",
        "user_id": "1"
    }
},
{
    "id": "2",
    "firstname": "User",
    "surname": "Two",
    "email": "email@domain.com",
    "password": "password",
    "remember_token": null,
    "created_at": "-0001-11-30 00:00:00",
    "updated_at": "-0001-11-30 00:00:00",
    "pivot": {
        "group_id": "1",
        "user_id": "2"
    }
}

]

這並不是我想要的,我希望可以得到更明確的信息,這意味着返回的行包括組名等,以及用戶詳細信息。

要獲取組詳細信息,我可以在get()函數中切換查詢,然后返回結果中的數據透視圖對象將成為用戶詳細信息。 為了獲得用戶數據,我需要對該數據進行進一步的查詢。

從長遠來看,我希望輸出的是

Group Name 1
---------------------------------
Members
---------------------------------
    User One
    User Two
    User Five
    User Six
    User Ten
    User Nineteen

聽起來好像您想要一個包含模型的對象,並附加到其關系上-在laravel中稱為“渴望加載”。 有一個語法:

Group::find($id)->with('users')->first() //or
Group::with('users')->get() //etc.

在此處查看更多詳細信息: http : //laravel.com/docs/eloquent#eager-loading

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM