我有一张桌子:
events [id,'name','date'],
门票['id',event_id','isAvailable'],
order_tickets ['order_id','ticket_id'],
orders ['id','buyer_id','status']。
我需要接收所有带有事件票证的订单,其中日期> =今天(不包括过去事件的票证。)。
下一个查询是
$userId = 1;
$orders = Order::with([
'tickets',
'tickets.event',
])->where('buyer_id', $userId)
->where('status', 'sold')
->get();
答案 0 :(得分:0)
您可以使用whereHas()方法和today()帮助函数来实现此目的:
$orders = Order::with('tickets.event')
->whereHas('tickets.event', function ($query) {
$query->whereDate('date', '>=', today());
})
->where('buyer_id', $userId)
->where('status', 'sold')
->get();