使用 Eloquent ORM 检索分组关系

Retrieve grouped relation with Eloquent ORM

我的关系是这样的:

User
 - id
Menu
 - id
 - appetizer_id
 - main_course_id
 - dessert_id
User_Menu
 - user_id
 - menu_id

及对应机型:

class User
{
    public function menus()
    {
        return $this->belongsToMany('App\Models\Menu', 'user_menu', 'user_id', 'menu_id');
    }
}

class Menu 
{
    public function dessert()
    {
        return $this->belongsTo('App\Models\Dessert', 'dessert_id');
    }
}

换句话说,存在具有多对多关系的用户和菜单。现在我想为给定用户检索所有不同的 desserts。我试过使用 group by,但它不允许我 select 和按单个列分组,因为数据透视列始终包含在查询中:

$desserts = User::find(1)->menus()
    ->select('dessert_id')
    ->groupBy('dessert_id')
    ->with('dessert')
    ->get();

抛出以下错误:

'User_Menu.user_id' isn't in GROUP BY
$desserts = User::join('User_Menu', 'User.id', '=', 'User_Menu.user_id')
                ->join('Menu', 'User_Menu.menu_id', '=','Menu.id')
                ->get();