我有以下型号
每个订单都有很多细节
每个细节都属于项目
每个项目都属于一个类别
每个细节都属于用户
我写了这行代码
public function show(Order $order)
{
//
$orders= $order->details()->with(['item','user'])->get();
return response()->json(['details'=>$orders],200);
}
要获得这样的响应:
"details": [
{
"id": 3089,
"count": 3,
"item_id": 102,
"order_id": 1,
"user_id": 10,
"created_at": "2019-11-22 22:19:23",
"updated_at": "2019-11-22 22:19:23",
"user": {
"id": 10,
"name": "Ms. Eda Stoltenberg DVM",
"username": "Brandy Murazik",
"verified": "1",
"verification_token": null,
"status": "1",
"dept_id": 5,
"created_at": "2019-11-22 22:15:47",
"updated_at": "2019-11-22 22:15:47"
},
"item": {
"id": 102,
"code": "Lamar Hansen",
"cat_id": 91,
"created_at": "2019-11-22 22:15:54",
"updated_at": "2019-11-22 22:15:54"
}
},
{
"id": 3428,
"count": 1,
"item_id": 15,
"order_id": 1,
"user_id": 10,
"created_at": "2019-11-22 22:19:41",
"updated_at": "2019-11-22 22:19:41",
"user": {
"id": 10,
"name": "Ms. Eda Stoltenberg DVM",
"username": "Brandy Murazik",
"verified": "1",
"verification_token": null,
"status": "1",
"dept_id": 5,
"created_at": "2019-11-22 22:15:47",
"updated_at": "2019-11-22 22:15:47"
},
"item": {
"id": 15,
"code": "Hilario Dicki",
"cat_id": 20,
"created_at": "2019-11-22 22:15:51",
"updated_at": "2019-11-22 22:15:51"
}
},
{
"id": 3493,
"count": 1,
"item_id": 129,
"order_id": 1,
"user_id": 6,
"created_at": "2019-11-22 22:19:45",
"updated_at": "2019-11-22 22:19:45",
"user": {
"id": 6,
"name": "Prof. Marina Kiehn",
"username": "Nickolas Hessel",
"verified": "0",
"verification_token": "mwWkL95jjyi5di9PSH3T3LXXZEE1W2DmegTxAOtN",
"status": "1",
"dept_id": 3,
"created_at": "2019-11-22 22:15:47",
"updated_at": "2019-11-22 22:15:47"
},
"item": {
"id": 129,
"code": "Dr. Donnell Harber",
"cat_id": 54,
"created_at": "2019-11-22 22:15:55",
"updated_at": "2019-11-22 22:15:55"
}
},
{
"id": 4032,
"count": 1,
"item_id": 221,
"order_id": 1,
"user_id": 8,
"created_at": "2019-11-22 22:20:10",
"updated_at": "2019-11-22 22:20:10",
"user": {
"id": 8,
"name": "Prof. Thaddeus Boehm",
"username": "Frederick Kshlerin",
"verified": "1",
"verification_token": null,
"status": "1",
"dept_id": 3,
"created_at": "2019-11-22 22:15:47",
"updated_at": "2019-11-22 22:15:47"
},
"item": {
"id": 221,
"code": "Maia Hettinger V",
"cat_id": 57,
"created_at": "2019-11-22 22:15:58",
"updated_at": "2019-11-22 22:15:58"
}
},
{
"id": 4311,
"count": 1,
"item_id": 139,
"order_id": 1,
"user_id": 3,
"created_at": "2019-11-22 22:20:21",
"updated_at": "2019-11-22 22:20:21",
"user": {
"id": 3,
"name": "Cletus Walter I",
"username": "Johan Kemmer",
"verified": "0",
"verification_token": "M6MWe7mOmzcyM0rrlbMwVCX7q2vyULFKwSAJmQwl",
"status": "0",
"dept_id": 5,
"created_at": "2019-11-22 22:15:46",
"updated_at": "2019-11-22 22:15:46"
},
"item": {
"id": 139,
"code": "Tanner Schimmel",
"cat_id": 80,
"created_at": "2019-11-22 22:15:55",
"updated_at": "2019-11-22 22:15:55"
}
},
{
"id": 4821,
"count": 2,
"item_id": 243,
"order_id": 1,
"user_id": 1,
"created_at": "2019-11-22 22:20:41",
"updated_at": "2019-11-22 22:20:41",
"user": {
"id": 1,
"name": "Mrs. Fay Cassin",
"username": "Ryley Bode",
"verified": "0",
"verification_token": "E93hzJbIp2eCxbBGgtcsYDckRreASTPL6ZEAyyKP",
"status": "1",
"dept_id": 1,
"created_at": "2019-11-22 22:15:46",
"updated_at": "2019-11-22 22:15:46"
},
"item": {
"id": 243,
"code": "Miss Jaida Simonis DVM",
"cat_id": 53,
"created_at": "2019-11-22 22:15:59",
"updated_at": "2019-11-22 22:15:59"
}
}
]
但我还需要在item对象中获取category对象,这已经是关系,item属于category我知道我可以进行连接查询,但我更喜欢使用基于模型之间关系的最佳解决方案
如果可能的话,我该怎么做呢?
谢啦
您可以尝试此操作(因为项目属于以下类别):
$orders = $order->details()->with(['item.category', 'user'])->get();
本文向大家介绍laravel ORM关联关系中的 with和whereHas用法,包括了laravel ORM关联关系中的 with和whereHas用法的使用技巧和注意事项,需要的朋友参考一下 with 渴求式预加载 可以有效的避免 N+1 问题,用法如下: 如果有多个关联关系可以用“,”隔开,还可以使用闭包来对关联关系进行限制,向下面这样: 结果会查找所有的用户,返回的每个用户信息中都会多一个
我正试图与我的订阅建立另一种关系,第一种是用户,它是付费模式,工作正常,另一种是地点,这是用户拥有的地点。 我创建了一个迁移,该迁移添加了place\u id: 我找不到订阅的方法-
我试图在Laravel Eloquent ORM中使用方法调用,但是得到了以下错误。
这是我的场景(使用一个完全虚构的应用程序): Joe注册了“contests R Us”,这将帮助用户为其业务创建新的比赛 乔让人们亲自报名参加比赛(有些人不会使用电脑) 然后,Joe使用“Contests R Us”为每个注册并填写其信息(名、姓、电话)的人创建一个新的。这是将从中抽取胜利者的人才库。 一些亲自报名的人想要检查他们是否赢了,所以在“Contests R Us”创建一个新的用户帐户
问题内容: 我有以下实体关系问题。一个“游戏”必须有两个(只有两个)“团队”对象。一个“团队”可以有很多“游戏” 据我所知,这是一对多关系。但是…我不知道如何在JPA中对此建模。例如,我打算做这样的事情… 但是,正如您所看到的,我不确定如何从注释侧将表链接在一起。有人曾经做过这样的事情吗?有什么想法吗? 非常感谢! 问题答案: 我希望有人能提出一个很棒的解决方案,但是这是一个棘手的情况,我从未能找
我试图找到一种不同的方法来将给定的模型及其关系保存/更新到数据库中。 基本上,我有一个“作者”页面的表单,可以添加多个“书籍”。自然,“作者”和“书籍”模型有一对多的关系。 根据laravel官方教程,您必须: 将所有输入数据添加到"作者"模型 创建并保存作者模型到DB 对于每个"Book"输入数据 创建并保存每个书模型到DB使用$作者- Laravel还指出,“有时你可能不仅希望保存一个模型,还