mso*_*wal 5 php orm laravel laravel-5.2 laravel-5.3
这是在laravel 5.2上工作的代码
$menus = CmsMenuItem::groupBy('menu_id')->get();
Run Code Online (Sandbox Code Playgroud)
但现在它抛出了错误
SQLSTATE [42000]:语法错误或访问冲突:1055 SELECT列表的表达式#1不在GROUP BY子句中,并且包含非聚合列'convertifier_cms.cms_menu_items.id',它在功能上不依赖于GROUP BY子句中的列; 这与sql_mode = only_full_group_by(SQL:select*from'cms_menu_items'group by'menu_id')不兼容
我也试过了
`strict => false`
Run Code Online (Sandbox Code Playgroud)
在database.php但没有效果
Nil*_*Nil 11
试试这个数据库配置.
'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,
],
Run Code Online (Sandbox Code Playgroud)
并以这种方式使用查询
$menus =DB::table('cms_menu_item')
->select('*')
->groupBy('menu_id')
->get();
Run Code Online (Sandbox Code Playgroud)
转到您的 config/database.php 文件夹。在 mysql 配置数组中,将 strict => true 更改为 strict => false,一切都会正常工作。
'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,
],
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5765 次 |
最近记录: |