laravel7 報錯 Non-static method Illuminate\Http\Request::get() should not be called statically

其實不只是get方法,all()等方法都不能被靜態調用

原因如下:

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;
use Illuminate\Http\Request;
use Illuminate\Http\Request;  這個類裏面根本沒有把這些方法註冊爲靜態方法,這也是laravel框架多年來的一個詬病,他在Illuminate裏面構建了這個Request類,而且這個類在IDE裏面還會被優先提示,導致出來的不能用。

可以改爲:

1,使用基礎類,這個IDE壓根不提示,找不到,鬱悶,當然他能正常工作

use Request;

2,找那個包含有靜態方法的Request類

use Illuminate\Support\Facades\Request;

3,直接寫在方法參數裏面,說高大上一點就是依賴注入……

use Illuminate\Http\Request;
public function sign_up_user(Request $request){
   dd($request->all());
}

4,和第三種方法用法一樣,不過是直接寫在構造方法裏面的

use Illuminate\Http\Request;

class YourController extends Controller
{
    protected $request;

    public function __construct(Request $request)
    {
        $this->request = $request;
    }

    public function sign_up_user(Request $request){
       dd($this->request->all());
    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章