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());
    }
}
发布了14 篇原创文章 · 获赞 3 · 访问量 4389

猜你喜欢

转载自blog.csdn.net/kina100/article/details/105548104