我有我的中间件,在其中我试图访问页面的当前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
任何想法?
答案 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
中的依赖注入有很好的解释