Las rutas en Laravel son las responsables de indicar el procedimiento que debe seguir nuestra aplicación, es decir, si nosotros pedimos la ruta /posts queremos que nos liste todos los posts. Si queremos el post 1, tendremos una ruta como por ejemplo /post/1.

Tanto las peticiones GET como POST las podemos manejar con las rutas y controladores. Veamos el archivo de rutas situado en app/Http/routes.php:

<?php
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
Route::get('/', function () {
   return view('welcome');
});

 

Vemos que solo hay una ruta definida, que es la raíz ‘/’, la cual nos retorna una vista llamada welcome.

Todas las vistas están en el directorio resources/views. Si vamos al directorio Views vemos que hay un archivo llamado welcome.blade.php. Sin embargo cuando llamamos a la vista con el método view(‘welcome’) no le ponemos la extensión, ya que Laravel nos lo hace por nosotros.

Esta vista contiene el Blade de la página que vemos cuando vamos a la raíz del proyecto (Recordamos https://blog.magarrent.com/blog/public/) , es un HTML normal y corriente, no tiene nada del sistema de plantillas de Blade aun.

Hemos visto como se hace una ruta cuando hacemos una petición por GET:

Route::get();

 

Para hacer una ruta la cual la petición venga por post es:

Route::post();

 

Exactamente el mismo proceso cambiando de método.

Ejemplo:

Route::post('/', function () {
   // Solo envia mails, no retornes nada o un mensaje.
   enviar_mails();
   return "Emails enviados";
});

 

Podemos como acabamos de ver crear una función y ejecutar código en una ruta en el mismo fichero, pero generalmente no se hace así, cada ruta va asociada a un Método de un controlador, traducido a PHP un controlador es una Clase y un método una función(método) dentro de la clase.

Para asociar una ruta a un controlador y un método se hace de la siguiente manera:

Route::get('posts', 'PostController@showPosts');

 

Donde:

Route::get('RUTA', 'CONTROLADOR@METODO');