Cambiar el valor de un parámetro en Laravel
Vamos a personalizar la variable img para almacenar en MySQL

¿Cómo cambiar el valor de un parámetro en Laravel?. En laravel el manejo de formularios es muy dinámico y hay varias formas de enviar datos al controlador. Por lo tanto, en el controlador la variable común a recibir la información seria $request
y es declarado en la cabecera de la función.
public function store(Request $request)
{
$input = $request->all();
}
Ademas, podemos asignar a una variable para almacenar todos los valores de un formulario haciendo uso de $request->all();
Un ejemplo seria lo siguiente:
$input = $request->all();
La variable $input contiene todos los valores del formulario y esta listo para ser almacenado en MySQL a través de los diferentes métodos que posee Laravel, Por ejemplo: create()
, update()
, save()
.
¿Cómo cambiar el valor de un parámetro en Laravel?
Si bien, al utilizar $request->all();
nos ayuda a procesar la información de manera eficaz. Sin embargo, si se desea personalizar o cambiar los valores del parámetro se debe de proceder de la siguiente manera.
Por ejemplo vanos a simular que tenemos una imagen y recordemos que las imágenes se debe de procesar de otra manera, es decir, cargar la imagen al disco y almacenar el nombre y ruta en un registro MySQL.
Procesar una Imagen en controlador Laravel
En este ejemplo nuestro input file tendrá de nombre myFile y en el controlador debemos de procesarlo de la siguiente manera.
- Verificar que el input file no este vacío
- Asignar un nombre dinámico con la función time()
- Crear la ruta y nombre de la imagen
- Mover la imagen hacia una ruta personalizada en el disco
if ($request->file('myFile') != "") {
$file = $request->file('myFile'); // Original filename
$imageName = time() . '.' . $file->getClientOriginalExtension(); //Nombre
$fileName = '/images/kanban/' . $imageName;
$file->move(public_path("images/kanban"), $imageName);
} else {
$fileName = "";
}
Personalizar una variable en controlador laravel
EL anterior script PHP ha procesado un input de tipo FILE
y procesa solo cuando tenga un valor y no este vacío, caso contrario genera una variable vacía.
La variable que hemos usado se llama $fileName
, Ahora viene la personalización en el conjunto de parámetros enviados en $request->all();
, veamos un ejemplo.
$input= $request->all();
$input['img'] = $fileName;
En el script anterior hemos creado una personalización de un parámetro en este caso se llama img que vendrá a ser una columna en nuestra tabla MySQL.
Si observamos bien, en la siguiente linea hemos declarado $input['img'] = $fileName;
y tiene como valor a $fileName
. Por lo tanto, esta variable en lineas arriba ya lo hemos procesado y podemos almacenarlo en nuestra base de datos.
En Resumen
La personalización de valores de parámetros en laravel es muy interactivo y en este articulo lo hemos logrado haciendo un ejemplo de carga de imagen, tanto en el disco y almacenando el nombre en un registro.
Estos cambios de valores en los parámetros no solo pueden ser de imagen, puede ser de cualquier tipo.