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