今天部署了一個從 5.2 升級到 5.5 的專案,在除錯過程中發現:查詢語句中如果使用 whereHas 那麼就會報 compact(): Undefined variable: operator
這個錯
最後對比了這個專案的框架核心原始碼以及其他 5.5 專案的框架核心原始碼,發現是 \vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php
下的 addWhereExistsQuery
方法中:
// 升級到 5.5 的專案
$this->wheres[] = compact('type', 'operator', 'query', 'boolean');
// 其他 5.5 的專案
$this->wheres[] = compact('type', 'query', 'boolean');
正好多了一個 operator
引數,刪掉之後就解決問題了
本作品採用《CC 協議》,轉載必須註明作者和本文連結