php - 如何在 laravel 的数据透视表上应用 groupBy 关键字?
问题描述
我有users_logs
一个有很多列的数据透视表,其中之一是event_date
. 我想检索与特定用户关联的所有数据。我通过不能使用 groupBy() 关键字来完成它,因为它返回错误。
$GameLogs = User::with(['gamelogs' => function ($query)
{
$query->where('type', '=', 'play');
$query->groupBy('event_date');
}])->find(request()->user()->id);
有人可以指导我如何解决这个问题。我将不胜感激。太感谢了。
错误是
SQLSTATE[42000]: Syntax error or access violation: 1055 'o*******_db.g***s.i`
解决方案
当您执行 agroupBy
时,需要将所选字段聚合到strict mode
$GameLogs = User::with(['gamelogs' => function ($query)
{
$query->where('type', '=', 'play');
$query->groupBy('event_date', 'user_id');
$query->select('event_date', 'user_id');
}])
->find(request()->user()->id);