Laravel通过其他关系数据过滤关系的数据

问题描述 投票:0回答:1

我试图在一个急切加载查询中过滤我的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();
laravel laravel-5 eloquent eager-loading
1个回答
0
投票

您可以尝试使用whereColumn()函数,它用于验证两列是否相等,类似于:

return $query->whereNull('status')->whereColumn('draw_date', 'results.draw_date');
© www.soinside.com 2019 - 2024. All rights reserved.