php - formrequest - Laravel Request input() o get()
request header laravel (1)
Con Laravel 5 parece que la inyección de método para el objeto Request es preferible a usar la fachada 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'');
}
}
Algunas preguntas que tengo:
Está utilizando Illuminate/Http/Request
mejor que utilizar Illuminate/Support/Facades/Request
No tengo idea de cómo $ request-> get () se está resolviendo ya que no hay nombre de función get()
en Illuminate/Http/Request
. input () y get () hacen lo mismo.
¿La inyección de método es mejor que usar fachadas?
En el método del controlador, siempre es preferible la funcionalidad de inyección de solicitudes, ya que en algunos métodos podría ayudarlo a usar la validación de Solicitudes de Formulario (amplían la clase de Solicitud predeterminada), que validará su solicitud automáticamente antes de ingresar al método del controlador real. Esta es una característica increíble que ayuda a crear un código de controlador delgado y limpio.
El uso de la inyección de solicitud predeterminada hace que los métodos de su controlador sean similares y más fáciles de mantener.
Además, la inyección de objetos siempre es mejor que Fachadas, ya que tales métodos y objetos son más fáciles de probar.
get()
y input()
son métodos de diferentes clases. El primero es el método de Symfony HttpFoundation Request, input()
es un método de la clase Laravel Request que amplía la clase Symfony Request.