Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 23.12.2021 11:17:09

Подскажите как правильно написать запрос.

Здравствуйте, есть две модели связанные отношением многие-ко-многим через промежуточную таблицу

$athlete = Athlete::with(['groups'])->find($id)

Как вытащить название группы из таблицы groups у которой в промежуточной таблице наибольшая дата?

Посмотрел подобные темы на форуме попробовал сделать вот так:

$groups = $athlete->groups()
            ->wherePivot('created_at', '1974-07-24 06:47:31')
            ->get();

А как теперь сделать что бы запрос сам фильтровал дату по максимальной?

Не в сети

#2 23.12.2021 15:12:25

Re: Подскажите как правильно написать запрос.

Ну в общем случае выбрать запись с максимальным чем-то это

...
order by something desc
limit 1

пивот таблица она такая же таблица как и другие, имеет имя и присоединена к запросу через join. поэтому думаю на неё можно ссылатся. не проверял.

$athlete = $athlete->groups()->orderBy('athlets_groups.created_at', 'desc')->first();

если не сработает, то можно использовать явный синтаксис join() для пивот и групп вместо "автоматического" ->groups()


There are two hard things in computer science: cache invalidation, naming things, and off-by-one errors.

Не в сети

#3 23.12.2021 21:46:15

Re: Подскажите как правильно написать запрос.

Спасибо тебе добрый человек! Все заработало, и как всегда оказалось проще чем я думал.

Не в сети

Подвал раздела