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.
1 | /** Rutas básicas */ |
2 |
3 | // Ruta que apunta al WellcomeController y a la acción index |
4 | Route::get( '/' , 'WelcomeController@index' ); |
5 |
6 | // Ruta que apunta al controlador HomeController y a la acción index |
7 | Route::get( 'home' , 'HomeController@index' ); |
8 |
9 | // Ruta básica con GET |
10 | Route::get( '/hola-mundo' , function () |
11 | { |
12 | return 'Hola Mundo!! victorroblesweb.es' ; |
13 | }); |
14 |
15 | /* Podriamos utilizar los métodos get,post,put y delete |
16 | * para montar un API Rest con Laravel 5. |
17 | Route::post('foo/bar', function() |
18 | { |
19 | return 'Hola Mundo!! victorroblesweb.es'; |
20 | }); |
21 |
22 | Route::put('foo/bar', function() |
23 | { |
24 | return 'Hola Mundo!! victorroblesweb.es'; |
25 | }); |
26 |
27 | Route::delete('foo/bar', function() |
28 | { |
29 | return 'Hola Mundo!! victorroblesweb.es'; |
30 | }); |
31 | */ |
32 |
33 | // Ruta para múltiples métodos HTTP |
34 | Route::match([ 'get' , 'post' ], '/hola-mundo-multiple' , function () |
35 | { |
36 | return 'Hola Mundo GET y POST!! victorroblesweb.es' ; |
37 | }); |
38 |
39 | Route::any( 'hola-mundo-cualquiera' , function () |
40 | { |
41 | return 'Hola Mundo para cualquier verbo HTTP!! victorroblesweb.es' ; |
42 | }); |
43 |
44 |
45 | /*Parámetros en las rutas*/ |
46 |
47 | // Pasar parámetro |
48 | Route::get( 'pelicula/{id}' , function ( $id ) |
49 | { |
50 | return 'Pelicula ' . $id ; |
51 | }); |
52 |
53 | /* |
54 | 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. |
55 | */ |
56 |
57 | // Pasar parámetro opcional y un valor por defecto |
58 | Route::get( 'pelicula/{titulo?}' , function ( $titulo = 'Batman Begins' ) |
59 | { |
60 | return $titulo ; |
61 | }); |
62 |
63 | // Restricción en el parámetro |
64 | Route::get( 'pelicula/{titulo}' , function ( $titulo ) |
65 | { |
66 | return $titulo ; |
67 | }) |
68 | ->where( 'titulo' , '[A-Za-z]+' ); //Expresión regular |
69 |
70 | // Multiples restricciones |
71 | Route::get( 'pelicula/{id}/{titulo}' , function ( $id , $titulo ) |
72 | { |
73 | return $id . " " . $titulo ; |
74 | }) |
75 | ->where([ 'id' => '[0-9]+' , 'titulo' => '[a-z]+' ]); |
Como ves definir rutas es sencillo de hacer en Laravel 5.
¿Quieres aprender más? Curso de Laravel 5 desde cero + Desarrollo de APIs RESTful y webs con Angular
Más información:
http://laravel.com/docs/5.0/routing