Laravel: Cómo utilizar un parámetro distinto al id de usuario en una URL
Estoy creando un sitio web de Laravel donde los usuarios pueden iniciar sesión y subir imágenes. Para que los visitantes vean la galería de ese usuario, he configurado una página de galería con una URL como https://localhost8000/gallery/2, donde 2 es el ID de usuario.
Mi código actual se ve así.
web.php
Route::get('/menu/{user}', 'CartController@menu');
CartController.php
public function menu($user)
{
$user = User::findOrFail($user);
return view('new_menu')->with(['user' => $user]);
}
En lugar de usar el ID de usuario como parámetro de ruta, quiero usar una cadena aleatoria. Actualmente, cuando el usuario se registra, se crea una cadena aleatoria de 32 dígitos que se almacena en la tabla users
en una columna llamada random
.
No pude averiguar cómo relacionar “random” con “user” en web.php y Controller.
davy.ai
Para usar una cadena aleatoria en lugar del ID de usuario como parámetro de ruta, puedes modificar el código de la siguiente manera:
web.php
CartController.php
En este código actualizado, cambiamos el nombre del método
menu
amenuByRandom
, y modificamos el parámetro de ruta de$user
a$random
. Luego, modificamos el métodomenuByRandom
para buscar al usuario por el camporandom
en la tablausers
, y devolver un error 404 si no se encuentra ningún usuario coincidente. Finalmente, actualizamos la vista con la variableuser
.Con estos cambios, deberías poder usar una cadena aleatoria en lugar del ID de usuario como parámetro de ruta.