在控制器中访问当前请求

9
在其他MVC框架中,访问当前请求对象就像这样简单:$this->request。然而在Laravel中,我通常看到Request $request被注入到每个操作中(public function edit($id, Request $request))。它似乎是一个样板文件。有没有更好的方法来访问请求?(我知道我可以使用继承来使用$this->request,但我正在寻找Laravel的方法。)
更新:
我发现使用app('request')可以访问当前请求。然而,我不确定它的潜在优缺点。

6
public function edit($id, Request $request)并不是"样板代码",它使用了依赖注入 - 这是 Laravel 大多数地方的做法。您也可以使用 Facades:Request::current(),或者将请求保存到构造函数中的 $this->request 变量中。 - Ben Claar
@Ben Request::current() 未定义。Request $request 不在由 Artisan 创建的方法中。request 对象几乎总是需要在控制器方法中,并且重复作为参数发送肯定是样板文件。 - Handsome Nerd
1个回答

9
在Laravel 5中,你可以使用request()助手函数:
// to get the current request object
$request = request();

// or to just get a value from the request
$value = request("field", "default");

请查看https://laravel.com/docs/5.6/helpers#method-request了解更多关于it技术的内容。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接