2016-09-06 103 views
2

此之後沒有工作是正在研究laravel 5.2集團通過升級到laravel 5.3

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

的代碼,但現在它拋出錯誤

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' 組 由 'menu_id')

我還試圖

`strict => false` 

在database.php中,但沒有效果

回答

5

試試這個數據庫的配置。

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

按照這個PR只是試試這個在您的數據庫配置

'strict' => false, 

如果不是有一些已知的問題正在進行。

請參考以下鏈接PR & Issue

1

請到你的config/database.php文件的文件夾。在mysql配置數組中,將strict => true更改爲strict => false,並且所有內容都將很好地工作。