Входной фасад Laravel против фасада запроса

На основе API ввода фасадов а также API запроса фасада метод Input :: get () кажется единственной разницей. Я что-то здесь упускаю?

Я знаю, что валидация может быть применена к запросам, но я не уверен, верно ли это для фасада ввода.

19

Решение

Да, оба фасада очень похожи. Причина этого в том, что базовый класс одинаков (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() прямо на фасаде:

public static function get($key = null, $default = null)
{
return static::$app['request']->input($key, $default);
}

Заключение

Они по сути одинаковы. Это означает, что нет необходимости менять существующий код. Однако, если вы хотите, это не будет иметь никакого значения.

При написании нового кода вы должны использовать Request, Input нигде не упоминается в документации для 5.0. Это не (официально) не рекомендуется, но использование Request рекомендуется.

Что мне также действительно нравится в Request является то, что Фасад на самом деле имеет имя базового класса. Таким образом, понятно, с чем вы имеете дело. Однако это также может быть причиной ошибок. Если вы используете что-то вроде Request::input('name') не забудьте импортировать фасад с use Request; или же use Illuminate\Support\Facades\Request а также не use Illuminate\Http\Request, Противоположность применяется для внедрения зависимости.

26

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]