说我有reservations
表
id - restaurant_table_id - guest_id
1 - 3 - 5
2 - 4 - 7
然后是orders
表
id - reservation_id - item_id
1 - 1 - 2
2 - 2 - 4
如何提取属于餐厅餐桌的订单?
我试过了:
$orders = ReservationOrders::with(['reservation' => function ($query) use ($restaurant_table_id) {
$query->where('restaurant_table_id', $restaurant_table_id);
}])
->get();
但结果包括所有餐厅餐桌的订单。
答案 0 :(得分:1)
您可以使用Eloquent的 whereHas()方法过滤关系的属性 - 您可以在此处获取更多信息:http://laravel.com/docs/5.1/eloquent-relationships
在你的情况下,像下面的代码应该有所帮助:
$orders = ReservationOrders::with('reservation')->whereHas('reservation', function($query) use($restaurant_table_id) {
$query->where('restaurant_table_id', $restaurant_table_id);
})->get();