如何加入 Eloquent?
Posted
技术标签:
【中文标题】如何加入 Eloquent?【英文标题】:How to join with Eloquent? 【发布时间】:2018-12-09 12:44:29 【问题描述】:我想在 Laravel 中从 Eloquent 模型中进行选择时进行自动连接分组。
假设我有这些表:
humans pets
------ ----
int id int id
varchar name varchar name
varchar category
int owner_id
填充了这些值:
humans pets
------ ----
1 Bob 1 Lucy Dog 1
2 Alice 2 Sadie Dog 1
3 Eve 3 Buster Cat 2
4 Sam Fish 2
因此,在我的 php 中有这些模型:
class Human extends Eloquent
class Pet extends Eloquent
这是我的愿望:
function wish()
return Human::all()->magic()->toJson();
为此,我希望得到这个准确的输出。我应该输入什么magic()
?
[
"id": 1,
"name": "Bob",
"pets": [
"id": 1, "name": "Lucy", "category": "Dog",
"id": 2, "name": "Sadie", "category": "Dog"
]
,
"id": 1,
"name": "Alice",
"pets": [
"id": 3, "name": "Buster", "category": "Cat",
"id": 4, "name": "Sam", "category": "Fish"
]
,
"id": 1,
"name": "Eve",
"pets": []
]
【问题讨论】:
【参考方案1】:你的魔法分两步完成:
class Human extends Eloquent
public function pets()
return $this->hasMany('Pet');
为了您的查询
function wish()
return Human::with('pets')->all()->toJson();
您还可以将with
包含到您的模型中:
class Human extends Eloquent
protected $with = ['pets'];
public function pets()
return $this->hasMany('Pet');
有关此的文档可从此处获得:
https://laravel.com/docs/5.7/eloquent-relationships
【讨论】:
以上是关于如何加入 Eloquent?的主要内容,如果未能解决你的问题,请参考以下文章