compact():未定义变量:运算符

时间:2019-06-23 17:27:38

标签: php laravel

我遇到错误

grepl ("^Myers|^Provider|^NA", A)

此处的我的代码行

  (1/1) ErrorException
  compact(): Undefined variable: operator

为什么会这样,是因为PHP 7.3或其他原因

6 个答案:

答案 0 :(得分:21)

转到您的项目 vendor \ laravel \ framework \ src \ Illuminate \ Database \ Query \ Builder.php

在1337行中,您可以在addWhereExistsQuery方法内的以下代码中找到

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

您只需删除“操作员”限制符

我希望它能正常工作

答案 1 :(得分:1)

请参考这里 https://github.com/laravel/framework/issues/26936

Laravel的版本需要更新。

答案 2 :(得分:1)

您无需将变量传递给compact()方法,而是将变量的名称作为不带美元符号的字符串传递给它。

$postsCats = Post::all(); // example

return view('posts.index', compact('postsCats'));

答案 3 :(得分:1)

此问题有 2 个修复程序

  1. 将您的 php 降级到 7.2
  2. 在最新的 Laravel 中运行“composer update”,此问题已解决。

答案 4 :(得分:0)

如果您无法升级Laravel,则可以将Query更改为RAW查询,这对我有用。

答案 5 :(得分:0)

  $posts = Post::latest()->get();
            return view('author.post.index', compact('posts'));