在中间件 laravel 中获取 url

get the url in the 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

有什么想法吗?

您可以从请求对象访问 url:

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

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

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

class MyMiddleware {

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

        // Do stuff here

        return $next($request);
    }

}

Laravel 5 尝试远离外观(例如:Request::url() 之类的调用)以支持使用依赖注入,因此您可能会注意到某些功能无法像您一样访问4.

Laravel 5 https://mattstauffer.co/blog/laravel-5.0-method-injection

中对依赖注入有很好的解释