Laravel / Lumen включают столбец из сводной таблицы в результаты загрузки - PullRequest
0 голосов
/ 25 мая 2018

В моем приложении пользователь может добавить других пользователей в список «Избранное».Вся информация о избранных пользователях хранится в таблице со следующей структурой:

user_id
favorite_id

Кроме того, у каждого пользователя есть свои услуги с ценами.В моем приложении есть таблицы users и services, которые связаны между собой таблицей service_user, которая имеет следующую структуру:

user_id
service_id
price

Для того, чтобы получить всех избранных пользователей определенного пользователя.с их услугами и ценами я делаю следующее:

$user->favorites()->with('services')->get();

Однако в каждом объекте службы в результирующем списке служб нет столбца price (этот столбец находится в pivot).

Поэтому я хочу знать, есть ли способ получить столбец price как часть каждого объекта службы, вместо того, чтобы находиться в сводной таблице. Следующий вопрос уже решает мою проблему, но я хочу знать, есть ли способ сделать это без map() и / или foreach(), чтобы улучшить производительность?

В настоящее время яесть следующее решение:

$user->favorites()->with('services')->get()
    ->map(function ($favorite) {
        foreach ($favorite['services'] as &$item) {
            $item['price'] = $item->pivot->price;
        }
        return $favorite;
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...