Laravel / Lumen предел 1 в закрытии соединения

Я пытаюсь получить некоторые данные из таблицы, но мне нужен только один элемент.

Таблицы:
оговорки, оговорки_продукции, продукты_цены_истории.

Структура таблицы слишком сложна, поэтому давайте использовать только то, что нам нужно:

Бронирование:

| id | date       |
-------------------
| 1  | 2017-10-03 |

reservation_products

| id | reservation_id |
-----------------------
| 1  | 1              |

products_price_history

| id | product_id | start_date | end_date   | price |
-----------------------------------------------------
| 1  | 1          | 2017-09-20 | 2017-10-01 | 200   |
| 2  | 1          | 2017-10-01 | NULL       | 200   |

Бронирование имеет много продуктов, а продукт имеет много цен. Мне нужно принять цену, что это start_date меньше даты бронирования.

Логика:

$users = User::with(['reservations' => function($query) {

// reservation products
$query->with(['reservation_products' => function($query) {
$query->join('reservations', 'reservation_products.reservation_id', 'reservations.id');
$query->join('products', 'reservation_products.product_id', 'products.id');

$query->join('products_price_history', function($query) {
$query->on('reservations.salon_id', 'products_price_history.salon_id');
$query->on('reservation_products.product_id', 'products_price_history.product_id');
$query->on('reservation_products.product_type_id', 'products_price_history.product_type_id');
$query->whereRaw('reservations.date >= products_price_history.date_start');
$query->limit(1);
});
}]);

}])->get();

$query->limit(1); не работает. Запрос только дает мне все записи, которые ниже, чем дата бронирования.

Благодарю.

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector