Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 通过使用雄辩(Laravel)进行分组_Php_Laravel_Eloquent - Fatal编程技术网

Php 通过使用雄辩(Laravel)进行分组

Php 通过使用雄辩(Laravel)进行分组,php,laravel,eloquent,Php,Laravel,Eloquent,在查询中添加group by时出现问题 Form::select('*')->groupBy('serial_num')->orderBy('id')->Paginate(10); SQLSTATE[42000]:语法错误或访问冲突:1055 “database.form.id”不在分组依据中(SQL:select*fromformGROUP 按serial\u numlimit 10偏移量0) 转到config\database.php 设置 保存后,运行此命令 php a

在查询中添加group by时出现问题

Form::select('*')->groupBy('serial_num')->orderBy('id')->Paginate(10);
SQLSTATE[42000]:语法错误或访问冲突:1055 “database.form.id”不在分组依据中(SQL:select*from
form
GROUP 按
serial\u num
limit 10偏移量0)


转到config\database.php

设置

保存后,运行此命令

php artisan optimize

转到config\database.php

设置

保存后,运行此命令

php artisan optimize

这与拉威尔无关。您正在结合分组选择非聚合列(*)

你有两个选择

  • 在您选择的每一列上使用聚合(最小、最大、平均、Group_concat),而不是按其分组
  • 在MySQL服务器上仅禁用\u FULL\u GROUP\u BY
  • 更详细的解释

    编辑: 显然,Laravel也可以动态设置MySQL模式

    正如在评论中提到的,您可以在Laravel数据库设置中禁用strict模式,然后Laravel应该相应地设置MySQL服务器模式,我没有找到关于此模式的最新文档


    确保在更改设置后清除所有配置缓存

    这与Laravel无关。您正在结合分组选择非聚合列(*)

    你有两个选择

  • 在您选择的每一列上使用聚合(最小、最大、平均、Group_concat),而不是按其分组
  • 在MySQL服务器上仅禁用\u FULL\u GROUP\u BY
  • 更详细的解释

    编辑: 显然,Laravel也可以动态设置MySQL模式

    正如在评论中提到的,您可以在Laravel数据库设置中禁用strict模式,然后Laravel应该相应地设置MySQL服务器模式,我没有找到关于此模式的最新文档


    确保在更改设置后清除所有配置缓存

    如果您可以自己处理分页,则可以获得结果,然后在集合上实现

    $forms = Form::orderBy('id')->get()->groupBy(function ($item, $key) {
        return $item['serial_num'];
    });
    

    如果您可以自己处理分页,那么就可以获得结果,然后在集合上实现

    $forms = Form::orderBy('id')->get()->groupBy(function ($item, $key) {
        return $item['serial_num'];
    });
    

    您试图通过此查询实现什么?你能给我们展示一下输入和输出数据样本吗?您编写的查询没有意义,但可能不是您想要做的。您是否有任何名为
    Form
    的模型?是的,我有一个模型名。我想列出所有记录,但我想按序列号相同的记录分组…您能显示您想要的输出吗?您试图通过此查询实现什么?你能给我们展示一下输入和输出数据样本吗?您编写的查询没有意义,但可能不是您想要做的。您是否有任何名为
    Form
    的模型?是的,我有一个模型名。我想列出所有记录,但我想按序列号相同的记录分组…你能显示你想要的输出吗?我将strict更改为false,但同样的问题再次出现,所以我将strict更改为True更改后你是否清除了缓存?是的,我清除了缓存:php artisan配置:缓存,php artisan缓存:清除,我也运行php artisan optimize,但它不起作用…感谢很多人,我清除了缓存,重新启动了服务器(xampp和laravel),并按工作分组…我将strict更改为false,但再次出现相同的问题,所以我将strict改为True更改后是否清除了缓存?是的,我清除了缓存:php artisan config:cache,php artisan cache:clear,还运行了php artisan optimize,但它不起作用…感谢很多人,我清除了缓存,重新启动了服务器(xampp和laravel)并按工作分组。。。