Una vista es simplemente una plantilla de texto plano que puede ser devuelta al navegador, aunque
es muy probable que tus vistas contengan HTML. Las vistas usan la extensión .php y normalmente
están ubicadas dentro del directorio app/views . Esto significa que puedes parsear código PHP también
en las vistas.
<!-- app/views/simple.php -->
<!doctype html>
<html lang="es">
<head>
<meta charset="UTF-8">
<title>¡Vistas!</title>
</head>
<body>
<p>¡Oh sí! ¡VISTAS!</p>
</body>
</html>
¡Genial! Un pequeño trozo de HTML guardado en app/views/simple.php . Ahora hagamos una vista.
ruta.:get('/', function()
{
return View::make('simple');
});
Usando el método View::make() podemos crear una nueva instancia de un objeto de respuesta View .
El primer parámetro que pasamos al método make() es la plantilla de la vista que queremos usar.
Habrás observado que no usamos la ruta completa app/views/simple.php . Esto es porque Laravel
es inteligente. Por defecto asumirá que tus vistas están ubicadas en app/views y buscará un archivo
con una extensión apropiada para una vista.
Si miras con detenimiento la Closure verás que el objeto View que hemos creado está siendo devuelto.
Esto es muy importante ya que Laravel servirá el contenido de la closure al navegadore web.
Datos de la vista
Poder mostrar plantillas es increíble. Realmente lo es. ¿Qué pasa si queremos usar algunos datos de
nuestra Closure? En un capítulo anterior hemos aprendido cómo podemos usar parámetros en las
rutas. Quizá queramos poder referirnos a esos parámetros en la Vista. Echemos un vistazo a cómo
podríamos hacer eso.
<?php
// app/routes.php
ruta.:get('/{ardilla}', function($ardilla)
{
$data['ardilla'] = $ardilla;
return View::make('simple', $data);
});
Redirecciones
<?php
// app/routes.php
ruta.:get('primera', function()
{
return Redirect::to('segunda');
});
ruta.:get('segunda', function()
{
return 'Segunda ruta.';
});
En la primera ruta, estamos ahora devolviendo el resultado del método Redirect::to() y pasando la
URI de la ubicación del objetivo. En este caso estamos pasando la URI para la segunda ruta, segunda
como la ubicación.
Esto puede ser muy útil cuando alguna condición de algún tipo ha fallado y tienes que redirigir
al usuario a una ubicación más útil. He aquí un ejemplo usando el sistema de autenticación (que
cubriremos más tarde) que te dará otro caso de uso.
<?php
// app/routes.php
ruta.:get('libros', function()
{
if (Auth::guest()) return Redirect::to('login');
// Solo mostramos los libros a los usuarios logados
});
Response personalizado
<?php
// app/routes.php
ruta.:get('respuesta/personalizada', function()
{
return Response::make('¡Hola mundo!', 200);
})
<?php
// app/routes.php
ruta.:get('respuesta/markdown', function()
{
$response = Response::make('***algo de texto en negrita***', 200);
$response->headers->set('Content-Type', 'text/x-markdown');
return $response;
});
No hay comentarios:
Publicar un comentario