Laravel/Lumen将数据透视表中的一列包含到加载结果中

Laravel/Lumen将数据透视表中的一列包含到加载结果中,laravel,many-to-many,pivot-table,lumen,Laravel,Many To Many,Pivot Table,Lumen,在我的应用程序中,用户可以将其他用户添加到“收藏夹”列表中。有关收藏夹用户的所有信息都存储在具有以下结构的表中: user_id favorite_id user_id service_id price 此外,每个用户都有自己的服务价格。我的应用程序中有用户和服务表,它们与服务用户表相互关联,该表具有以下结构: user_id favorite_id user_id service_id price 为了获得特定用户的所有喜爱用户及其服务和价格,我执行以下操作: $user->fa

在我的应用程序中,用户可以将其他用户添加到“收藏夹”列表中。有关收藏夹用户的所有信息都存储在具有以下结构的表中:

user_id
favorite_id
user_id
service_id
price
此外,每个用户都有自己的服务价格。我的应用程序中有
用户
服务
表,它们与
服务用户
表相互关联,该表具有以下结构:

user_id
favorite_id
user_id
service_id
price
为了获得特定用户的所有喜爱用户及其服务和价格,我执行以下操作:

$user->favorites()->with('services')->get();
但是,在生成的服务列表的每个服务对象中没有
price
列(此列位于
pivot

因此,我想知道是否有办法将
price
列作为每个服务对象的一部分,而不是放在pivot表中。已经解决了我的问题,但我想知道是否有办法在不使用
map()
和/或
foreach()
的情况下实现这一点,从而提高性能

目前,我有以下解决方案:

$user->favorites()->with('services')->get()
    ->map(function ($favorite) {
        foreach ($favorite['services'] as &$item) {
            $item['price'] = $item->pivot->price;
        }
        return $favorite;
    });

如果你能解释你的问题,而不是提供其他问题的链接,那就更好了。另外,请告诉我们您为什么不想要
map()
解决方案。@linuxartisan我更新了问题以解释我的问题以及不愿意使用
map()
和/或
foreach()