En Laravel es un framework muy flexible ya que nos da varias formas de solucionar un problema. Pero la verdad que, en mi opinión, no es un gran punto ya que crea confusión en la comunidad sobre cual método usar o no y en que momento y en cual no.
Un ejemplo claro es la captura de datos POST y GET en la solicitudes de nuestra aplicación web. Tenemos diferentes formas de obtener los datos: $request->get(), $request->input(), $request->campo y con el helper request(). Pero, ¿cual de todas ellas usar? ¿cuál es la mejor?. Bueno, esas son preguntas que vamos a intentar responder en LaravelTip.
$request->input() vs. $request->get()
En esta comparativa se lleva el triunfo el método $request->input() ya que es mas poderosa que $request->get(). Veamos porque:
Como pueden ver en la imagen, el método input() nos da la posibilidad de acceder a los valores de un array de una forma mucho mas legible y cómoda.
Otro punto a favor de input() es que, el método get() ni se menciona en la documentación oficial para la captura de datos de las solicitudes.
Propiedades dinámicas: $request->campo
También tenemos la posibilidad de acceder a los datos directamente por medio del nombre del campo del formulario, por ejemplo $request->email
pero, ¿es buena forma de capturar los datos? Vamos a ver que dice la documentación oficial:
Laravel primero buscará el valor del parámetro en la solicitud. Si no está presente, Laravel buscará el campo en los parámetros de la ruta.
Por otro lado, el método input() tiene estas características:
- El método input() funciona independientemente del verbo HTTP (POST, GET, PUT, DELETE, etc.)
- El método input() recupera todos los valores de la solicitud, incluidos los valores que vienen en la url.
Analizando el helper request()
La función request() devuelve una instancia de la solicitud actual u obtiene un valor de un campo (input).
El helper request() es una forma simplificada (shortcut) de $request->input(). Cabe aclarar que $request->input() también puede recibir un valor por defecto como el helper.
Conclusión
Parece que la mejor forma de capturar datos POST y GET, es utilizar el helper request() ya que es una forma sencilla de escribir el método $request->input(). Pero, como todo en la programación, queda a conciencia del desarrollador que método utilizar.
esta pagina es pa patos
Me fue bien útil, gracias, Daniela cuantos años tienes?