php - 使用 $input->all() 而不是 Input::all() Laravel-5

标签 php laravel laravel-5

我正在尝试在 Laravel-5 中使用 $input->all() 而不是 Input::all() ,但它似乎没有喜欢它,即使我将输入引用传递给函数,如下所示:

/**
 * Search for a specified resource.
 *
 * @return Response
 */
public function search(Booking $booking, Input $input)
{
    dd($input->all()); // this doesn't work

    dd(Input::all()); // this DOES work

}

我得到的错误是:

调用未定义的方法 Illuminate\Support\Facades\Input::all()

有没有人能解决这个问题?

最佳答案

我认为您不应该将 Facades 注入(inject)到您的 Controller 中。 InputIlluminate\Http\Request 的外观,它的服务容器绑定(bind)是 request。所以根据文档,在 Laravel 5 中你可以执行 Request::all() 而在 Laravel 5.1 中你可以执行 $request->all()

http://laravel.com/docs/5.0/requests#retrieving-input http://laravel.com/docs/5.1/requests#retrieving-input

编辑:这篇文章提供了一些更深入的信息:https://stackoverflow.com/a/29961400/2433843

EDIT3:我认为如果有人可以解释为什么您不能将 Facades 注入(inject)到您的 Controller 中,那就太好了。我理解 DI 和 Facades 是完全不同的两个东西,L5+ 正在插入开发人员转向 DI。我只是不完全理解为什么注入(inject)外观不起作用,因为它指向另一个类,并且在您不注入(inject)它时它会起作用。不要忘记 Facades 和 Aliases 也是两个独立的东西。我希望有人可以详细说明这一点。

关于php - 使用 $input->all() 而不是 Input::all() Laravel-5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31142292/

相关文章:

javascript - 如果从 Facebook 共享,则重定向到页面

php - 使用 PHP 或 javascript 或 PHP 框架验证 HTML 嵌入代码 (Zend)

php - 限制 Laravel 分页显示的链接数量

javascript - 将 php json 解析为 javascript

javascript - 使用 DOMparser 进行 Web 抓取时的数组输出问题

php - Laravel 异步请求最佳实践

php - 哎呀,看起来像出事了。拉拉维尔 5.0

javascript - 查询在数据表子行中的经理姓名中选择员工姓名

php - Laravel App 执行两个请求,但第二个不需要

php - laravel 5 ->getRealPath() 不显示正确的值