这是在laravel 5.2上运行的代码

$menus = CmsMenuItem::groupBy('menu_id')->get(); 

但现在它抛出错误

SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'convertifier_cms.cms_menu_items.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select * from 'cms_menu_items' group by 'menu_id')



我也尝试过
 `strict => false`  

在database.php中,但没有效果

请您参考如下方法:

试试这个进行数据库配置。

 '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(); 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!