Laravel 使用 id 查询 order_details 的订单
Laravel query order with order_details using id
坚持这一点。
我使用不带 Id 的相同查询来成功获取所有这些数据。
$orders = $this->order
->with('orderDetails', 'orderDetails.product')
->today()
->get();
人际关系
订单:
public function orderDetails(){
return $this->hasMany('App\OrderDetail', 'order_id');
}
订单详情:
public function order()
{
return $this->belongsTo('App\Order', 'order_id', 'id');
}
public function product()
{
return $this->belongsTo('App\Product', 'id_products', 'id');
}
但是尝试使用相同的东西来获取特定订单的数据并不 return order_details。
public function invoice(Request $request, $id)
{
$ordered = $this->order
->find($id)
->with('orderDetails', 'orderDetails.product');
return response()->json($ordered);
}
为什么在传递 id 时表现不同?
试试这样使用:
$ordered = $this->order->find($id);
return response()->json($ordered);
laravel 已经根据您在模型中输入的映射转换为关系。
在这种情况下,您的响应中的 orderDetails 将如下所示:
订单:{
编号:“1”,
Xpto: "whatever",
订单详细信息: {
编号:“1”
}
}
当您使用 find
时,查询在其他指令之前执行。您需要使用 where
:
$ordered = $this->order
->where('order_id', $id)
->with('orderDetails', 'orderDetails.product')
->get();
坚持这一点。 我使用不带 Id 的相同查询来成功获取所有这些数据。
$orders = $this->order
->with('orderDetails', 'orderDetails.product')
->today()
->get();
人际关系
订单:
public function orderDetails(){
return $this->hasMany('App\OrderDetail', 'order_id');
}
订单详情:
public function order()
{
return $this->belongsTo('App\Order', 'order_id', 'id');
}
public function product()
{
return $this->belongsTo('App\Product', 'id_products', 'id');
}
但是尝试使用相同的东西来获取特定订单的数据并不 return order_details。
public function invoice(Request $request, $id)
{
$ordered = $this->order
->find($id)
->with('orderDetails', 'orderDetails.product');
return response()->json($ordered);
}
为什么在传递 id 时表现不同?
试试这样使用:
$ordered = $this->order->find($id);
return response()->json($ordered);
laravel 已经根据您在模型中输入的映射转换为关系。 在这种情况下,您的响应中的 orderDetails 将如下所示:
订单:{ 编号:“1”, Xpto: "whatever", 订单详细信息: { 编号:“1” } }
当您使用 find
时,查询在其他指令之前执行。您需要使用 where
:
$ordered = $this->order
->where('order_id', $id)
->with('orderDetails', 'orderDetails.product')
->get();