从Laravel中的服务提供商获取url参数

Mat*_*att 0 php laravel laravel-5

通常在Laravel中,您会获得一个带有所有参数的请求包。但是在服务提供商中却并非如此。但是我们确实有request()对象。

但是,它不包含资源路由中给定的url参数。

因此,我正在寻找一种从路由中检索{id}的方法。

我试过了:

request()->route('id')
Route::get('id')
Request::get('id')
Run Code Online (Sandbox Code Playgroud)

所有这些都返回null

jed*_*ylo 5

这两个启动()寄存器()任何服务提供商的方法被调用的请求进行解析和请求参数已知之前,这就是为什么你不能访问它们。

服务提供者应该注册服务,并且不应依赖于请求上下文。如果要在服务中使用请求参数,请将请求服务声明为服务的依赖项,以便在实例化服务时将其注入。