Laravel 5 - 受父母关系的限制

时间:2015-12-02 04:37:14

标签: php laravel laravel-5 eloquent laravel-5.1

说我有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();

但结果包括所有餐厅餐桌的订单。

1 个答案:

答案 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();