为了账号安全,请及时绑定邮箱和手机立即绑定

在 Laravel 中获取具有 orderItems 和产品详细信息的用户订单

在 Laravel 中获取具有 orderItems 和产品详细信息的用户订单

PHP
ibeautiful 2023-04-21 15:28:30
我有 3 个表(食物、订单和 orderItems)。我想通过 orderItems 和食品获得用户的订单,但我失败了。这是我现在得到的结果,但我需要获取食物详细信息而不是 food_id。[    {        "id": 16,        "user_id": 2,        "total": "12.50",        "items": [            {                "id": 20,                "order_id": 16,                "food_id": 1,                "quantity": 1,                "food_price": "12.50",            }        ]    }]订单控制器$user = Auth::user();return response()->json($user->deliveredOrders()->with('items')->get());用户模型public function deliveredOrders(){    return $this->hasMany(Order::class)->where('status', '=', 'delivered');}订货型号public function items()    {        return $this->hasMany(OrderItem::class);    }
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

您应该在 OrderItem 模型中创建此关系


public function food() 

{

   return $this->belongsTo('App\Food'); //or wherever you have the model 

}

然后得到它


$user = Auth::user();

return response()->json($user->deliveredOrders()->with('items.food')->get());


查看完整回答
反对 回复 2023-04-21
?
慕标5832272

TA贡献1966条经验 获得超4个赞

您应该在 OrderItem 模型上定义 food() 方法。


public function food() 

{

   return $this->belongsTo('App\Food');

}

并使用此获取关系数据:


$user = Auth::user();

return response()->json($user->deliveredOrders()->with('items.food')->get());


查看完整回答
反对 回复 2023-04-21
  • 2 回答
  • 0 关注
  • 137 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信