Rutas en Laravel 5

El sistema de rutas es algo muy importante dentro de un Framework. Veamos como se definen rutas en Laravel 5.

Las rutas se configuran en el fichero app/Http/routes.php. Veamos como se definen rutas, puedes ir probandolas individualmente para ver el resultado que dan.

/** Rutas básicas */

// Ruta que apunta al WellcomeController y a la acción index
Route::get('/', 'WelcomeController@index');

// Ruta que apunta al controlador HomeController y a la acción index
Route::get('home', 'HomeController@index');

// Ruta básica con GET
Route::get('/hola-mundo', function()
{
    return 'Hola Mundo!! victorroblesweb.es';
});

/* Podriamos utilizar los métodos get,post,put y delete 
 * para montar un API Rest con Laravel 5. 
Route::post('foo/bar', function()
{
    return 'Hola Mundo!! victorroblesweb.es';
});

Route::put('foo/bar', function()
{
   return 'Hola Mundo!! victorroblesweb.es';
});

Route::delete('foo/bar', function()
{
    return 'Hola Mundo!! victorroblesweb.es';
});
*/

// Ruta para múltiples métodos HTTP
Route::match(['get', 'post'], '/hola-mundo-multiple', function()
{
    return 'Hola Mundo GET y POST!! victorroblesweb.es';
});

Route::any('hola-mundo-cualquiera', function()
{
    return 'Hola Mundo para cualquier verbo HTTP!! victorroblesweb.es';
});


/*Parámetros en las rutas*/

// Pasar parámetro
Route::get('pelicula/{id}', function($id)
{
    return 'Pelicula '.$id;
});

/*
Si le queremos pasar un parámetro a una acción seria igual que aquí solamente que abría que pasar el parámetro $id en el método action del controlador al que se está llamado.
*/

// Pasar parámetro opcional y un valor por defecto
Route::get('pelicula/{titulo?}', function($titulo = 'Batman Begins')
{
    return $titulo;
});

// Restricción en el parámetro
Route::get('pelicula/{titulo}', function($titulo)
{
    return $titulo;
})
->where('titulo', '[A-Za-z]+'); //Expresión regular

// Multiples restricciones
Route::get('pelicula/{id}/{titulo}', function($id, $titulo)
{
    return $id." ".$titulo;
})
->where(['id' => '[0-9]+', 'titulo' => '[a-z]+']);

Como ves definir rutas es sencillo de hacer en Laravel 5.

Más información:
http://laravel.com/docs/5.0/routing

Víctor Robles WEB

Autor: Victor

Desarrollador web - Formador online - Blogger

Compartir este post