Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.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 5.5在单个列上分组不';行不通_Php_Mysql_Laravel_Laravel 5.5 - Fatal编程技术网

Php laravel 5.5在单个列上分组不';行不通

Php laravel 5.5在单个列上分组不';行不通,php,mysql,laravel,laravel-5.5,Php,Mysql,Laravel,Laravel 5.5,即使我将设置“strict”设置为false,laravel 5.5在单个列上分组也不起作用。。我在mysql工作台中尝试了原始查询,它工作正常,但在laravel上出现了以下错误: SQLSTATE[42000]: Syntax error or access violation: 1055 'hammer.vehicle.consignor_id' isn't in GROUP BY (SQL: select `vehicle`.*, `vehicle_brand`.`vehicle_bra

即使我将设置“strict”设置为false,laravel 5.5在单个列上分组也不起作用。。我在mysql工作台中尝试了原始查询,它工作正常,但在laravel上出现了以下错误:

SQLSTATE[42000]: Syntax error or access violation: 1055 'hammer.vehicle.consignor_id' isn't in GROUP BY (SQL: select `vehicle`.*, `vehicle_brand`.`vehicle_brand_name`, `vehicle_model`.`vehicle_model_name`, `vehicle_variant`.`vehicle_variant_name`, `vehicle_model`.`year`, `vehicle`.`vehicle_id` from `vehicle` left join `vehicle_brand` on `vehicle_brand`.`vehicle_brand_id` = `vehicle`.`vehicle_brand_id` left join `vehicle_model` on `vehicle_model`.`vehicle_brand_id` = `vehicle_brand`.`vehicle_brand_id` left join `vehicle_variant` on `vehicle_variant`.`vehicle_model_id` = `vehicle_model`.`vehicle_model_id` group by `vehicle`.`vehicle_id` limit 10 offset 0)
这是导致错误的laravel代码

\DB::table('vehicle')
                    ->select('vehicle.*', 'vehicle_brand.vehicle_brand_name', 'vehicle_model.vehicle_model_name', 'vehicle_variant.vehicle_variant_name', 'vehicle_model.year', 'vehicle.vehicle_id')
                    ->leftJoin('vehicle_brand', 'vehicle_brand.vehicle_brand_id', '=', 'vehicle.vehicle_brand_id')
                    ->leftJoin('vehicle_model', 'vehicle_model.vehicle_brand_id', '=', 'vehicle_brand.vehicle_brand_id')
                    ->leftJoin('vehicle_variant', 'vehicle_variant.vehicle_model_id', '=', 'vehicle_model.vehicle_model_id')
                    ->where($where)
                    ->groupBy('vehicle.vehicle_id')
                    ->paginate(10);

配置“strict”中的mysql设置已经设置为false

我认为是strict模式导致了问题,请检查
config/database.php
并检查
mysql
内部,然后进行更改

'strict' => true,

因为这里面提到

如果设置为true,那么它将在 质疑

或者,您可以通过执行以下操作,尝试禁用
仅\u完整\u组\u by
设置:

mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

正如建议的那样。

什么是$where变量。可以添加更多详细信息吗?@LakiGeri$where变量可以为空,也可以包含where语句。现在它被设置为一个空数组
vehicle.vehicle\u id
我想这里有问题没有?车辆表的id是什么?这是车辆表的主键。。这是我们的命名约定好的,所以在选择中,您有“vehicle.*”和vehicle.vehicle\u id可能不是问题的根源,只是为了清洁:pi在我的问题中已经说过,我已将其设置为false。这就是为什么它很奇怪,因为在Laravel5.4上这样做解决了这个问题。升级到laravel 5.5不起作用。请尝试向groupBy添加
车辆。发货人id
,如前所述
mysql> set global sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
mysql> set session sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';