Sabemos que podemos definir verbos de peticiones HTTP que queramos asociar usando los métodos
de rutas. Esto es realmente conveniente a la hora de enrutar a Closures. No obstante, cuando
enrutamos a Controladores puede que quieras mantener la definición del verbo de la petición junto
a la lógica de tu aplicación. Bueno, las buenas noticias es que Laravel te ofrece esta configuración
alternativa.
Alteremos nuestro Controlador un poco, ¿vale?
<?php
// app/controllers/Articulo.php
namespace Blog\Controller;
use View;
use BaseController;
class Articulo extends BaseController
{
public function getCrear()
{
return View::make('crear');
}
16
17
public function postCrear()
{
18
// Gestionar el formulario de creacion
19
}
20
21
92
}
Aquí tenemos nuestro Controlador de Articulo una vez más. La intención de las acciones son
facilitar una forma de crear y gestionar la creación de un nuevo artículo del blog. Descubrirás que
los nombres de las acciones tienen como prefijo get y post . Esos son nuestros verbos HTTP.
Por tanto, en nuestro ejemplo podrías pensar que hemos representado puntos para las siguientes
URLs:
1
2
GET /crear
POST /crear
También podrías preguntarte cómo enrutamos hacia nuestro controlador RESTful. Como verás, usar
métodos de verbos en la clase Route no tendría mucho sentido. Bueno, di adios a enrutar acciones
individuales. Echemos un vistazo a otro método de enrutado.
<?php
// app/routes.php
Route::controller('Articulo', 'Blog\Controller\Articulo');
Este único método enrutará todas las acciones representada en nuestro controlador RESTFul.
Miremos con más detenimiento al método.
El primer parámetro es la URL base. Normalmente, el enrutado RESTful es usado para representar
un objeto por lo que, en la mayoría de las ocasiones, la URL base será el nombre de ese objeto. Puedes
pensar en ello como un prefijo de las acciones que hemos creado en nuestro controlador RESTful.
El segundo parámetro ya te será familiar. Es el controlador al que intentamos enrutar. Una vez más,
Laravel aceptará felizmente un controlador con un espacio de nombre como objetivo de la ruta por
lo que eres libre de organizar tus Controladores como quieras.
Como puedes ver, usar este método de enrutado a tus controladores, te ofrece una ventaja distinta
sobre el método de enrutado original. Con este método, solo tendrás que facilitar una única entrada
de enrutado para el controlador, en vez de enrutar cualquier acción de forma independiente.
No hay comentarios:
Publicar un comentario