【发布时间】:2021-01-10 02:55:24
【问题描述】:
我的关系如下所示:
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,但它不允许我按单个列进行选择和分组,因为查询列始终包含在查询中:
$desserts = User::find(1)->menus()
->select('dessert_id')
->groupBy('dessert_id')
->with('dessert')
->get();
抛出以下错误:
'User_Menu.user_id' isn't in GROUP BY
【问题讨论】:
-
用户会是认证用户吗??
-
@dqureshiumar 是的,虽然没关系?
标签: laravel eloquent group-by eloquent-relationship