这是在laravel 5.2上运行的代码
$menus = CmsMenuItem::groupBy('menu_id')->get();
但现在它会抛出错误
SQLSTATE [42000]:语法错误或访问冲突:1055表达式#1 SELECT列表不在GROUP BY子句中并包含nonaggregated 列'convertifier_cms.cms_menu_items.id',这不是功能上的 依赖于GROUP BY子句中的列;这是不相容的 sql_mode = only_full_group_by(SQL:select * from'cms_menu_items'group 通过'menu_id')
我也试过
`strict => false`
在data.php中但没有效果
答案 0 :(得分:9)
尝试使用此数据库配置。
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
并以这种方式使用查询
$menus =DB::table('cms_menu_item')
->select('*')
->groupBy('menu_id')
->get();
答案 1 :(得分:4)
答案 2 :(得分:2)
请转到config / database.php文件夹。在mysql配置数组中,更改strict => true to strict =>是的,一切都会好起来的。