繁体   English   中英

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

[英]compact(): Undefined variable: operator

我收到以下错误

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

这是我的代码行

$postsCat = Post::whereHas('Cat', function($query) use ($sreachWord) {
    return $query->whereRaw('name REGEXP"'.sql_text_to_regx($sreachWord).'"');
})->orderBy('top','desc')
->orderBy('updated_at','desc')
->paginate(30);

为什么会这样? 是因为我的 PHP 版本(7.3)还是其他原因?

转到您的项目

vendor\laravel\framework\src\Illuminate\Database\Query\Builder.php

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

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

您只需删除 'operator' 参数。

我希望它能正常工作。

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

Laravel 的版本需要更新。

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

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

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

此问题有 2 个修复程序

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

如果您无法升级您的 Laravel,您只需将您的查询更改为 RAW 查询,它对我有用。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM