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');