Php Laravel 5\Http\Request具有不允许静态调用的方法

Php Laravel 5\Http\Request具有不允许静态调用的方法,php,laravel,Php,Laravel,我正试图从我的一个控制器调用illumb\Http\Request has方法 Request::has('fields') 完全按照文档中的说明进行操作,但我遇到了一个错误: 假设$this来自不兼容的上下文,则不应静态调用非静态方法illumb\Http\Request::has() 我不确定我在这里做错了什么,我试着尽可能地遵循文档。问题是您使用了错误的请求类。您需要导入外观: use Illuminate\Support\Facades\Request; 尝试使用Input::has

我正试图从我的一个控制器调用illumb\Http\Request has方法

Request::has('fields')
完全按照文档中的说明进行操作,但我遇到了一个错误:

假设$this来自不兼容的上下文,则不应静态调用非静态方法illumb\Http\Request::has()


我不确定我在这里做错了什么,我试着尽可能地遵循文档。

问题是您使用了错误的
请求
类。您需要导入外观:

use Illuminate\Support\Facades\Request;

尝试使用Input::has()代替,然后使用Input::get()实际获取相应的POST/get变量。

使用Illumb\Support\Facades\Request;使用门面是不好的做法。应使用Illumb\Http\Request;并通过方法或构造函数ie获得可用的请求-

public function __construct(Request $request) {
    $this->request = $request;
}
然后在方法中使用它,即

public function checkText() {
   $txt = $this->request->has('txt'); 
   return $txt;
}

非常感谢。他们应该更新文档来解释这一点。使用一些简单的方法,您可以从Lightlight\Http\Request实例访问所有用户输入。您不必担心用于请求的HTTP谓词,因为所有谓词都以相同的方式访问输入。不客气。是的,没错。但是,实际上您甚至不需要导入任何类,因为在
app.php
中注册了一个别名。然而,IDE并没有真正理解这一点。这是正确的方法/解释