获取中间件laravel中的url

The*_*ner 6 url middleware laravel

我有我的中间件,在其中我试图到达页面的当前URL.所以我做了类似的事情:

$url = Request::url();

我用过:

use App\Http\Requests; use Illuminate\Http\Request;

但我一直收到以下错误:

Non-static method Illuminate\Http\Request::url() should not be called statically, assuming $this from incompatible context

有任何想法吗?

iga*_*iil 16

您可以从Request Object访问url:

 public function handle($request, Closure $next)
 {
      $url = $request->url();
      ...
 }
Run Code Online (Sandbox Code Playgroud)

Request对象有也fullUrl()path()方法.选择适合您需求的产品


Wad*_*der 5

在 Laravel 5 中,请求已经传递到handle()函数中

class MyMiddleware {

    public function handle($request, Closure $next)
    {
        $url = $request->url();

        // Do stuff here

        return $next($request);
    }

}
Run Code Online (Sandbox Code Playgroud)

Laravel 5 尝试远离 Facades(例如:调用诸如Request::url()),转而使用依赖注入,因此您可能会注意到某些函数无法像在 4 中那样访问。

这是 Laravel 5 中依赖注入的一个很好的解释https://mattstauffer.co/blog/laravel-5.0-method-injection