Laravel 5.4 #2 : Rutas, controladores y vistas

En este post vamos a explicar cómo crear nuevas rutas en Laravel, qué son y cómo utilizar los controladores y las vistas.

Si entramos en el directorio donde creamos anteriormente nuestro nuevo proyecto Laravel veremos que hay muchas carpetas, cada carpeta tiene unos archivos que cada uno tiene su funcionalidad.

  • app: es donde están todas las clases de lo que sería tu app. (controladores, modelos, etc.)
  • bootstrap: contiene lo necesario para inciar el framework
  • config: contiene los archivos de configuraciones
  • database: contiene las migraciones y los seeds
  • public: contiene el index.php que el archivo por donde entran todas las consultas
  • resources: contiene las vistas y los assets sin compilar (JS, CSS, etc)
  • routes: contiene las rutas de tu app
  • storage: contiene cachés y logs
  • tests: contiene los tests
  • vendor: contiene las dependencias

Rutas

Las rutas se tienen que poner en el archivo  routes/web.php  si fuese una ruta web, si fuese una ruta para una API se debería poner en  routes/api.php. Puedes añadir tantas rutas como quieras, pero las rutas que no estén en estos archivos al acceder y detectará que no existe Laravel te devolverá un error 404.

Vamos a crear nuestra primera ruta GET. Abrimos el archivo, añadimos el siguiente código y guardamos:

Abrimos el navegador y vamos a localhost:8000/test  y veremos la frase que pongamos.

Laravel también nos permite utilizar cualquier método HTTP, simplemente cambiando el get por post, put, delete… Esto lo utilizaremos más adelante cuando trabajemos con formularios.

A veces necesitas pasar por la ruta el objeto que quieres mostrar, por ejemplo, cuando queremos mostrar el perfil de un usuario específico. Para hacer eso vamos a añadir otra ruta diferente en el mismo archivo.

Accedemos desde el navegador a  localhost:8000/usuario/juan  y veremos la frase, si modificamos nombre veremos que también cambia la frase.

Vistas

Las vistas no es más que lo que tú ves cuando entras a una web. En Laravel las vistas se encuentran en resources/views. Para ver un ejemplo de como funcionan, en el código de ejemplo de las rutas se puede ver claramente como funciona.

Cuando entra en la raíz muestra la vista welcome que se encuentra en  resources/views. Si abres el archivo verás que hay partes que tiene una sintaxi diferente que no es ni PHP ni HTML, esas partes de código es Blade, que es el motor de plantillas de Laravel, que nos facilita mucho el trabajo. Más adelante profundizaremos en Blade y explicaremos esa sintaxis.

Controladores

Los controladores son los archivos que se encargan de enviar la información a las vistas. Para crear un controlador lo podemos hacer desde la línea de comandos o hacerlo manualmente, yo creo que es más sencillo desde la línea de comando.

Una vez ejecutado, Laravel nos habrá creado el controlador en app/Http/Controllers , si lo abrimos veremos que tenemos todo preparado para añadir los métodos que harán las funcionalidades.

Vamos a crear un método de ejemplo, también tendremos que cambiar la forma de añadir las rutas, ahora lo vemos.

Añadimos el método show al controlador creado anteriormente:

En el método estamos cogiendo el id pasado por la ruta y se lo pasamos a la vista para que lo muestre:

Por último, añadimos la ruta, la nueva forma quiere decir del controlador PostsController «ejecuta» el método show:

Y ya podemos acceder a localhost:8000/post/3 , por ejemplo, y veremos como todo esto funciona y la frase cambia dinámicamente dependiendo de lo que le pasemos por los parámetros de la ruta.

 

En la próxima entrada, trataremos controladores y vistas juntamente con modelos. Lo cual nos llevará configurar la conexión a la base de datos para poder utilizar los modelos.


Aloja tu proyecto en DigitalOcean: Obtén $200 de crédito gratis al registrarte a través de este enlace.

Si hay cualquier tipo de error en el post o te surge cualquier duda, no dudes en ponerlo en los comentarios o enviarme un correo desde la página de contacto.

? CONTACTAR

7 comentarios en “Laravel 5.4 #2 : Rutas, controladores y vistas

  1. Hola!, de antemano gracias por tus post me han ayudado mucho para aprender laravel, tengo una duda, creaste un nuevo archivo llamado «post.blade.php» o le cambiaste el nombre a welcome.blade.php? para agregar el «El id del post es {{ $post_id }}»

    1. Hola,
      Gracias por tu comentario! Me alegra que te haya ayudado!

      Yo sí, creé una vista nueva.

      Un saludo, espero volver a leernos por aquí.

  2. Hola, me podrias dar un ejemplo para acceder a vistas que estan en subcarpetas dentro de views? Como deberia definir que hay una subcarpeta con mis vistas?

Deja una respuesta

  Acepto la política de privacidad