En nuestros sitios web siempre tenemos alguna landing page que no carga ningún dato. A te tipo de paginas se las llama Paginas Estáticas y Laravel nos brinda un método para definir rutas en el framework para este tipo de paginas.
Route view para paginas estáticas
Laravel nos brinda el método view()
de la clase Route
para definir rutas de paginas que no necesitan pasar por un controlador para ser renderizadas ahorrándonos mucho código y la creación de controladores innecesarios.
El primer parámetro que recibe es la URI y el segundo argumento es el nombre de la vista que se desea renderizar. También, acepta argumentos como tercer parámetro.
Definiendo rutas con parámetros y Route::view
Ahora bien, si no estas haciendo una pagina estática pero estas haciendo una pagina simple que recibe algunos datos, puedes pasar estos datos como tercer argumento.
Ventajas de Route::view()
Tal vez llegaste a este punto pensando, «¡Esto es lo mismo que usar las rutas con closure!». Y no, esta forma es mucho mejor y te comentare porque.
Laravel nos da el beneficio de poner nuestras rutas en cache para que su acceso sea mas rápido gracias al comando:
$ php artisan route:cache
Pero si definimos nuestras rutas con closures perdemos este beneficio ya que los closure se resuelven en tiempo de ejecución y esto no es posible cuando la ruta esta en cache. Por este motivo, nos da el siguiente error cuando intentamos ejecutar el comando artisan para guardar las vistas en cache.
En cambio, con definiendo nuestras rutas con Route::view() podemos guardar en cache nuestro archivo de rutas.
Versión disponible
El método view de la clase Route lo tenemos disponible desde la versión 5.5 de Laravel.
Observaciones
Tener en cuenta que la función view de la clase Route solo sirve para peticiones GET y no funciona para peticiones POST.
Conclusión
Vimos un excelente método para definir nuestras rutas que no necesitan pasar por un controlador. Ideal para definir rutas de paginas estáticas. Y además, tienen el beneficio de guardarse en cache. Asà que, si estabas pensando usar una función de cierre (closure) para devolver una plantilla, mejor acuérdate de Route::view() 😉🤙
Excelente recurso que nos brinda Laravel
tambien se le puede pasar un array como parametro?