與Laravel Eloquent 中的sql_mode=only_full_group_by 不相容
停用 MySQL 嚴格模式
解決方案是在資料庫連線配置中停用 MySQL 嚴格模式設定。在Laravel 的.env 檔案中,加入以下行:DB_STRICT_MODE=false
<code class="php">'mysql' => [ // Disable strict mode 'strict' => false, ],</code>
說明
在MySQL 5.7 及更高版本中,sql_mode=only_full_group_by 模式要求SELECT 清單中的所有欄位都包含在GROUP BY 子句中或為聚合函數。在提供的查詢中:<code class="php">$products = Product::where('status', 1) ->where('stock', '>', 0) ->where('category_id', '=', $category_id) ->groupBy('store_id') ->orderBy('updated_at', 'desc') ->take(4) ->get();</code>
以上是如何修復由於 MySQL 嚴格模式導致 Laravel Eloquent 中的「SELECT 清單的表達式 #1 不在 GROUP BY 子句中」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!