compact (): Undefined variable: operator

生活無限好發表於2019-05-07

今天部署了一個從 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 協議》,轉載必須註明作者和本文連結

www.haowuliaoa.com

相關文章