Rutas (Routes)

Es el concepto de configurar URI como por ejemplo http://localhost:8000/hello . Las rutas podemos encontrarlas en el directorio llamado route Por defecto tenemos dos archivos de rutas web.php y api.php , cada archivo expresan en su nombre para cual es su definicion.

Dentro del archivo web.php podemos observar el siguiente codigo:

Route::get('/', function(){
    return view('welcome');
});

Route es una clase el cual contiene un metodo estatico get , este metodo acepta dos parametros principales el primero es la ruta al cual vamos a definir la accion y una funcion anonima o closure, el cual encapsulamos la tarea que se llevara acabo en esa ruta. Tambien observamos otros componente dentro de la funcion anonima el cual discutiremos luego.

Verbos en rutas

Puedes haber notado que estamos utilizando Route::get en nuestra definicion de ruta, aqui estamos diciendole a Laravel que solo y unicamente compara con la ruta cuando la accion de la peticion HTTP sea GET. Laravel nos permite configurar otras opciones de verbos.

Route::get('/', function () { 
  return 'Hello, World!'; 
});
Route::post('/', function () {});
Route::put('/', function () {});
Route::delete('/', function () {});
Route::any('/', function () {})
Route::match(['get', 'post'], '/', function () {});

Rutas con parametros

Podemos crear rutas mas complejas con Laravel cual necesiten parametros dinamicos. Esto puede llevarse acabo de la siguiente forma:

Route::get('/users/details/{id}', function ($id) {
  return "Details of the user id: {$id}";
});

Laravel se encargara de capturar el segmento de la ruta que es dinamico, lo identifica porque esta cerrado entre llave, por tanto en el URL pasamos el parametro el cual luego lo pasamos como argumento en la funcion anonima y podra ser utilizado dentro de ella.

Route::get('posts/{post_id}/comments/{comment_id}', function ($postId, $commentId) {
  return "This comment id is {$commentId} to post {$postId}";
});

Rutas con parametros opcionales

Existiran momento el cual un parametro no es obligatorio, podemos usar el caracter ? despues del nombre del parametro para indicar que es opcinal. Se debera anadirse un valor por defecto al parametro cuando lo colocamos en funcion:

Route::get('saludo/{name}/{nickname?}', function ($name, $nickname = null) {
  if ($nickname) {
    return "Bienvenido {$name}, tu apodo es {$nickname}";
  }
  else {
    return "Bienvenido {$name}, no tienes apodo";
  }
});

results matching ""

    No results matching ""