Laravel Request input () или get ()

С Laravel 5 кажется, что инъекция метода для объекта Request предпочтительнее использования фасада запроса.

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class HomeController extends Controller { public function index(Request $request) { $email = $request->input('email'); // OR $email = $request->get('email'); } } 

Несколько вопросов, которые у меня есть:

Использует Illuminate\Http\Request лучше, чем использование Illuminate\Support\Facades\Request

Я понятия не имею, как разрешается $ request-> get (), поскольку в Illuminate\Http\Request нет имени функции get() . input () и get () делает то же самое.

Является ли метод инъекции лучше, чем использование Фасадов?

В методе контроллера Запрос функции впрыска всегда предпочтительнее, поскольку в некоторых методах это может помочь вам использовать проверку формы (они расширяют класс запроса по умолчанию), который будет автоматически проверять ваш запрос непосредственно перед вводом в фактический метод контроллера. Это потрясающая функция, которая помогает создавать тонкий и чистый код контроллера.

Использование ввода запроса по умолчанию делает методы вашего контроллера похожими и более простыми в обслуживании.

Также инъекция объектов всегда лучше, чем Фасады, потому что такие методы и объекты легче тестировать.

get() и input() – это методы разных классов. Первый – это метод запроса Symphony HttpFoundation, input() – это метод класса запроса Laravel, расширяющий класс Symphony Request.