[英]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 個修復程序
如果您無法升級您的 Laravel,您只需將您的查詢更改為 RAW 查詢,它對我有用。
$posts = Post::latest()->get();
return view('author.post.index', compact('posts'));
最新的 PHP 版本不允許使用未定義的變量。 另一個選擇是在版本之間切換,而不是刪除最新版本。 安裝較早的版本,如此處概述的PHP7.2<\/strong> 。<\/a> 然后通過在 Ubuntu 終端上運行
sudo update-alternatives --set php \/usr\/bin\/php7.2<\/code>將其設置為首選版本。
然后運行
composer update<\/code>
"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.