2017-10-19 7 views
2

レポートを生成できるように、すべてのビューをuni_idとその作成日でグループ化するためにgroupByを使用しようとしていました。しかし、私はLaravel Eloquentがエラーを生成しているのを見ます。しかし、phpmyadminで同じクエリを実行すると、データが表示されます。 Eloquentはどのようにクエリを処理しますか?エラーが発生しますが、クエリはphpmyadminで正常に実行されます

$data = UniversityView:: 
    groupBy('created_at', 'uni_id') 
    ->select('uni_id', DB::raw('count(*) as views'), 'name', 'created_at') 
    ->get(); 

質問はそれを修正する方法はありません:私は

このLaravel 5.2を使用しています

私は雄弁を介して実行しようとしていますクエリです。私はすでにgroupByに '名前'を入れて修正しました。しかし質問はなぜEloquentを介して別々に実行されているのですか?

下記の画像で確認してください。ありがとう。 MySQL's strict modeによって引き起こされています

enter image description here enter image description here

答えて

2

、あなたがphpMyAdminで直接それを実行したときにphpMyAdminが異なる接続パラメータを使用しているので、なぜそれが、働いているということconfig/database.phpであなたの接続パラメータの配列で指定されています。

config/database.php接続配列を変更することで、この種のグループを許可するために部分的に無効にすることができます。この方法でそれを実行します。

'strict' => true, 
'modes' => ['STRICT_TRANS_TABLES', 
      'NO_ZERO_IN_DATE', 
      'NO_ZERO_DATE', 
      'ERROR_FOR_DIVISION_BY_ZERO', 
      'NO_AUTO_CREATE_USER', 
      'NO_ENGINE_SUBSTITUTION'], 

それとも、あなたは何をしているかを知っていればあなたが直接行うことができます(私はそれを行うことはありません):

にのみ、このルールを無効にmodes配列を追加します。

'strict' => false, 
関連する問題