簡體   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