php - 在 Laravel 中使用 orderItems 和产品详细信息获取用户的订单
问题描述
我有 3 张桌子(食物、订单和订单项)。我想通过 orderItems 和 food 获得用户的订单,但我失败了。
这是我现在得到的结果,但我需要获取食物详细信息而不是 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);
}
解决方案
您应该在 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());
推荐阅读
- android - 将 SpotBugs 添加到我的项目中
- python - 如何在视图中访问模型中的字段?
- ruby-on-rails - 我可以在 rails activerecord 中自定义字段设置吗?
- windows - 如果在您的文件夹中更改/创建了某些内容,则通知
- artifactory - 如何使用 REST API 更新工件中项目的属性
- drop-down-menu - 在选择框上保存 TYPO3 中的 TCA 更改
- yii2 - Yii2 在所有模型中的通用行为
- firebase - 如何获取当前用户的电子邮件地址 FirebaseAuth/Flutter
- java - 在 Java 中使用 Guava BiMap
- parsing - 从 jinja2 ast 生成代码