18. Cómo pasar parámetros por ruta

En este capítulo, aprenderás cómo utilizar parámetros en una ruta de Laravel 10. Los parámetros son variables que pueden pasar valores diferentes a una ruta para modificar el resultado de una solicitud. Te enseñaremos cómo definir y utilizar parámetros en tus rutas de Laravel para construir rutas dinámicas.


4 comentarios

Inicia sesión para comentar

Comentarios:

  • Victor Arana Flores

    Victor Arana Flores hace 11 meses Destacado

    Los parámetros de ruta en Laravel le permiten capturar segmentos variables del URI en su ruta y utilizarlos en su controlador o devolución de llamada de ruta. Puede definir tantos parámetros de ruta como desee en su ruta.

    Por ejemplo, en la siguiente ruta, se captura el segmento {id} del URI y se utiliza como argumento en la función de devolución de llamada de la ruta:

    Route::get('/user/{id}', function (string $id) {
       return 'User '.$id;
    });


    En la siguiente ruta, se capturan los segmentos {post} y {comment} del URI y se utilizan como argumentos en la función de devolución de llamada de la ruta:

    Route::get('/posts/{post}/comments/{comment}', function (string $postId, string $commentId) {
       // ...
    });


    Tenga en cuenta que los parámetros de ruta siempre están encerrados entre llaves {} y deben constar de caracteres alfabéticos. Los guiones bajos _ también son aceptables dentro de los nombres de parámetros de ruta.

    Ocasionalmente, puede necesitar especificar un parámetro de ruta que no siempre esté presente en el URI. Puede hacerlo colocando una marca ? después del nombre del parámetro. Asegúrese de dar a la variable correspondiente de la ruta un valor predeterminado, para que no genere un error si el parámetro no está presente en la URL.

    Por ejemplo, en la siguiente ruta, {name} es un parámetro opcional. Si se encuentra en la URL, su valor se inyectará en la función de devolución de llamada de la ruta. De lo contrario, se utilizará el valor predeterminado null.

    Route::get('/user/{name?}', function (string $name = null) {
       return $name;
    });


    En la siguiente ruta, {name} también es un parámetro opcional, pero se ha proporcionado un valor predeterminado John.

    Route::get('/user/{name?}', function (string $name = 'John') {
       return $name;
    });
  • Yean Martinez

    Yean Martinez hace 7 meses

    Muy buenas Tardes Victor, gusto en saludarlo, tengo una duda que no he podido resolver, ya he leído e investigado y no consigo la respuesta, mi duda es la siguiente: tengo un listado de alumnos y puedo entrar a cada uno de ellos y ver sus datos (uso un controlador para alumnos - AlumnosController) ya viendo los datas del alumno tengo un botón que me dirige a las notas del alumno y la maneja el controlador NotasController, el inconveniente viene que si quiero usar los datos del alumno en mención en las vistas de Notas no me trae estos datos; en la vista show de alumnos envío el parámetro por el enlace a la ruta de notas → <a href="{{route('notas.index', $alumno)}}"  y en el controlador de Notas en la función index lo recibo → public function index(string $id) , pero aquí no llega ningún valor, yo muestro esta variable y aparece un array vacío … {[]}

    Como puedo pasar parámetros de un controlador a otro?? ó como debe recibir estos parámetros el controlador??

     

    Muchas Gracias por su colaboración.

    • Victor Arana Flores hace 7 meses

      Hola Yean, en el array estás indicando que recibiras un string y creo que le estás mandando otro tipo de dato.

  • Victor Roman Ortiz Abreu

    Victor Roman Ortiz Abreu hace 1 año

    Ok, muy valido es un principio de programacion secuencial, aplicado a condicionales simples y multi condicionales, ya tenia mucho tiempo que no veia nada de esto gracias.

    • Daniel hace 1 mes

      .

  • Alex Labanino

    Alex Labanino hace 1 año

    Hum, intersante! Sino pongo la categoria no me muestra “Sin categoria” sino que me lleva a ‘/cursos/{curso}’, lo cual creo que es mejor! ?