我试图在一个急切加载查询中过滤我的tickets.tips.drawDates关系数据的其他关系的列(results.draw_date)。有人对如何实现这一点有任何建议吗?
$products = Product::with([
'results' => function ($query) use ($drawDates) {
return $query->whereBetween('draw_date', $drawDates);
},
'tickets' => function ($query) use ($drawDateFrom) {
return $query->whereDate('valid_until', '>=', $drawDateFrom)->where('status', 'pending');
},
'tickets.tips',
'tickets.tips.drawDates' => function($query) {
return $query->whereNull('status')->whereDate('draw_date', 'HERE SHOULD BE draw_date COLUMN FROM results RELATION');
},
'prizes'
])->get();
您可以尝试使用whereColumn()
函数,它用于验证两列是否相等,类似于:
return $query->whereNull('status')->whereColumn('draw_date', 'results.draw_date');