2015-12-02 2 views
1

Скажем, у меня есть reservations столLaravel 5 - ограничительный от родительских отношений

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

Вы можете фильтровать по атрибутам отношению, используя 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(); 
Смежные вопросы