Hasta ahora hemos cubierto una buena cantidad de conceptos en el gran Framework de Laravel. Una cosa que ha faltado hasta ahora es el uso de controladores. Laravel es un framework MVC, ¿no? Bueno, si lo es. Pero, de hecho, se podría decir que los creadores lanzaron una bola curva. Parece que Laravel se puede usar en el estilo MVC, pero no es obligatorio. Si está acostumbrado a los controladores en Codeigniter, o algo más como Zend o CakePHP, encontrará que la implementación de Laravel es un poco diferente. Es potente y bastante elegante, ¡así que echémosle un vistazo ahora!


¿Por qué utilizar controladores?

La razón por la que todavía no hemos cubierto los controladores es porque en realidad podría crear una aplicación completa usando nada más que el routes.phparchivo. Definitivamente comenzaría a complicarse, pero se podría hacer. Además, los ejemplos hasta ahora han sido fragmentos simples que podríamos mostrar fácilmente en un cierre. Sin embargo, el crecimiento es bueno y, para que podamos crecer, debemos ir más allá del enrutamiento hacia los cierres y comenzar a utilizar los controladores.


Enrutamiento explícito a controladores

Al comenzar a usar controladores, comenzaremos con el enrutamiento explícito a los controladores. Lo que esto significa es que en el routes.phparchivo, en lugar de seguir este formato:

En su lugar, haremos algo como esto:

Entonces, lo que estamos diciendo aquí es que cuando nos dirigimos a los agentes , usaremos el controlador de agentes . Sigue el formato de un nombre de Colección seguido de la palabra Controlador . Pero espera, todavía no tenemos un controlador real. Bueno, eso es fácil de arreglar, usemos Artisan para generar uno para nosotros:

php artisan controller:make AgentsController

Bingo: ¡El controlador se creó correctamente!

Ok, naveguemos a nuestro directorio de Controladores y veamos qué se ha creado para nosotros:

Cuando creamos un controlador, Laravel configura un montón de métodos para nosotros automáticamente. Tenemos indexcreatestoreshoweditupdate, y destroyAsí que podemos visitar http://you.rock/agentsy aunque todavía no vemos nada en el navegador, sabemos que el controlador está funcionando ya que no se arrojan errores. Ahora Artisan hizo todo este trabajo por nosotros, pero si lo está haciendo manualmente, asegúrese de seguir el formato de su controlador extendiendo lo BaseControllersimilar:

Solo por diversión, agreguemos algunos agentes a nuestro método de índice así:

Ahora al visitar http://you.rock/agents

Obtenemos: Agentes Brown, Smith y Jones

Pasar parámetros a controladores

Si sabe cómo pasar parámetros a los cierres, y lo sabe, ya que ha revisado el Tutorial básico de enrutamiento de Laravel,🙂 entonces también sabe cómo pasar parámetros a los controladores. La razón es porque funciona de la misma manera. Echale un vistazo:

Aquí, agregamos otra ruta a nuestro routes.phparchivo. Dice que cuando acceda a la ruta de los agentes y pase el comodín del nombre del agente , ejecute el AgentsController y llame al showmétodo. Añadiendo un fragmento rápido a nuestro showmétodo:

Ahora podemos visitar http://you.rock/agents/smithy ser recibidos con el mensaje siempre amistoso del Agente Smith.