最近需要维护一个 5.5 版本的 Laravel 项目,拉到本地后运行提示:compact(): Undefined variable: operator 错误。

看了下源码,vendorlaravelframeworksrcIlluminateDatabaseQueryBuilder.php 下的 addWhereExistsQuery 方法中:

 $this->wheres[] = compact('type', 'operator', 'query', 'boolean');

发现删除里面的 operator 参数就可以正常运行了,但是又怕直接删除影响到现有功能,去服务器上看了下,有这个参数也可以正常运行,再看下 PHP 版本,服务器上是 7.2,而本地设置成了 7.3,将本地 PHP 改成 7.2 后问题解决。