基于Input Facade API和Request Facade API,Input::get() 方法似乎是唯一的区别。我在这里错过了什么吗?
我知道验证可以应用于请求,但我不确定输入门面是否也是如此。
基于Input Facade API和Request Facade API,Input::get() 方法似乎是唯一的区别。我在这里错过了什么吗?
我知道验证可以应用于请求,但我不确定输入门面是否也是如此。
是的,两个门面都非常相似。这样做的原因是基础类是相同的(Illuminate\Http\Request
)。您可以通过查看 Facade 类及其访问器来看到这一点:
Illuminate\Support\Facades\Input
protected static function getFacadeAccessor()
{
return 'request';
}
Illuminate\Support\Facades\Request
protected static function getFacadeAccessor()
{
return 'request';
}
正如您所意识到的,一个区别是Input::get()
方法。这只是Request::input()
直接在 Facade 中“翻译”为:
public static function get($key = null, $default = null)
{
return static::$app['request']->input($key, $default);
}
它们本质上是相同的。这意味着,无需更改现有代码。但是,如果您愿意,它不会有任何区别。
编写新代码时,您应该使用Request
. Input
5.0 的文档中没有提到任何地方。它没有(官方)弃用,但Request
鼓励使用。
我还真正喜欢Request
的是 Facade 实际上具有底层类的名称。这样就很清楚你在处理什么。然而,这也可能是错误的根源。如果您使用类似的东西,请Request::input('name')
确保使用use Request;
oruse Illuminate\Support\Facades\Request
和not use Illuminate\Http\Request
导入 Facade 。相反的情况适用于依赖注入。