Я пытаюсь использовать Eloquent, чтобы найти максимальное значение столбца в последней таблице из нескольких отношений has-many.Laravel 5.1 Красноречивый с() и max() с использованием нескольких отношений has-many
Учитывая следующую структуру таблицы.
Здание
+----+---------------+
| id | building_name |
+----+---------------+
| 1 | Building 1 |
| 2 | Building 2 |
+----+---------------+
Номер
+----+-----------+-------------+
| id | room_name | building_id |
+----+-----------+-------------+
| 1 | Room 1 | 1 |
| 2 | Room 2 | 1 |
| 3 | Room 3 | 2 |
+----+-----------+-------------+
maintenancelog
+----+-------------------+---------+---------------------+
| id | maintenance_value | room_id | timestamp |
+----+-------------------+---------+---------------------+
| 1 | Cleaned | 1 | 2015-09-06 00:54:59 |
| 2 | Cleaned | 1 | 2015-09-06 01:55:59 |
| 3 | Cleaned | 2 | 2015-09-06 02:56:59 |
| 4 | Cleaned | 2 | 2015-09-06 03:57:59 |
| 5 | Cleaned | 3 | 2015-09-06 04:58:59 |
| 6 | Cleaned | 3 | 2015-09-06 05:59:59 |
+----+-------------------+---------+---------------------+
Я хотел бы видеть, если это возможно, чтобы сформировать красноречивое заявление, что бы получить имя здания, помещение имя и ТОЛЬКО значение даты последнего журнала обслуживания.
Следующие работы, чтобы дать мне набор ВСЕХ значений.
$buildings = Building::with('rooms.maintenancelog')->get();
, но это ошибки вне, и это выглядит, как он пытается вызвать максимум (maintenancelog.timestamp) на столе зданий ..
$buildings = Building::with('rooms.maintenancelog')->max('maintenancelog.timestamp')->get();
Возвращена ошибка:
.....(SQL: select max(`maintenancelog`.`timestamp`) as aggregate from `buildings`)
Am Я просто прошу слишком много от красноречивого, и должен ли я просто использовать базовый построитель запросов