Illuminate\Http\Request::get() should not be called statically

发布时间:2022-10-18 20:18:35 阅读:906次

IlluminateHttpRequest::get() should not be called statically

其实不只是get方法,all()等方法都不能被静态调用

原因如下:

<?php namespace App;

use IlluminateDatabaseEloquentModel;
use IlluminateHttpRequest;
use IlluminateHttpRequest; //这个类里面根本没有把这些方法注册为静态方法,这也是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());
    }
}

如有问题,可以QQ搜索群1028468525加入群聊,欢迎一起研究技术

支付宝 微信

有疑问联系站长,请联系QQ:QQ咨询

转载请注明:Illuminate\Http\Request::get() should not be called statically 出自老鄢博客 | 欢迎分享