请求(Facade)和Illuminate \ Http \ Request之间的区别

时间:2017-02-10 12:07:34

标签: php laravel laravel-5 laravel-request

我开始使用Laravel,我想知道如何选择一个而不是另一个。

从5.0版开始,Laravel文档将请求示例从boolean result = true; boolean doRollback = true; try { result = db.doSomething1() && result; // ? && true -> ?; result = db.doSomething2() && result; // if result: false then ? && result -> false if (result) {userTransaction.commit(); doRollback = false;} } finally { if (doRollback) userTransaction.rollback(); } 更改为Request::get('form_input'),但我无法找到有关他们为何已完成此操作的说明。

我的怀疑是:

  1. $request->get('form_input')
  2. 之间是否存在差异?
  3. 他们是Whare吗?
  4. 最喜欢什么?

2 个答案:

答案 0 :(得分:2)

Request facade和request()帮助程序同时引用app(' request')实例。 我认为docs中的示例更改为$ request,因为您可以定义自己的Request派生类,服务容器会自动将其注入动作调用中,就像FormRequest一样,即:

public function store(UserStoreRequest $request)
{
    $name = $request->input('name');

答案 1 :(得分:1)

Straigth回答:否(特别区别) 除此之外:从此来源引用How laravel facades work and how to use

  

Laravel facade是一个类,它为容器内的服务提供类似静态的接口。根据文档,这些外观用作访问容器服务的底层实现的代理。

我不能同意这一点。但就我而言,使用Facade模式只需使我的代码更清晰:)