获取中间件laravel中的url

时间:2015-02-28 10:58:02

标签: url laravel middleware

我有我的中间件,在其中我试图访问页面的当前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

任何想法?

2 个答案:

答案 0 :(得分:14)

您可以从请求对象访问该网址:

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

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

答案 1 :(得分:4)

在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中那样访问。 / p>

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

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