En los tutoriales recientes, hemos pasado de instalar laravel hasta configurar controladores RESTfulEn nombre de la brevedad, simplemente devolvimos datos a la pantalla cuando probamos las rutas, modelos y controladores que hemos construido. Es posible que se haya estado preguntando acerca de las vistas. Bueno, ahora estamos listos para embellecer un poco las cosas, y qué mejor manera que incorporar el motor de plantillas Blade de Laravel con Twitter Bootstrap para comenzar a construir nuestras vistas. ¡Vamos a hacerlo!


Motor de plantilla de hoja

¡Ahora podemos empezar a hacer algunas vistas! Recordará que en nuestro Controlador de Blogposts estábamos devolviendo los datos al navegador así:

¡Comencemos a usar Views en su lugar! Cuando queramos cargar una vista, lo haremos usando el make()método de ViewFacade. También queremos pasar todos los datos que necesitemos a la vista y podemos hacerlo de una de tres maneras.

En el fragmento de arriba, blogposts/indexse hace referencia a /app/views/blogposts/indexla estructura de su directorio.


Páginas maestras

Empezaremos creando una página maestra. La página maestra contiene cualquier HTML repetitivo que no queremos tener que volver a crear en todas las vistas individuales. Incluiremos jQuery y Twitter Bootstrap en esta página maestra para que podamos tener acceso a todos sus grandes beneficios. Este archivo residirá en el /app/views/layoutsdirectorio.

¡Frio! En el fragmento de arriba, notará dos cosas que pueden parecer un poco extrañas.

{{ link_to('/', 'Larablog') }}
Las {{y}} indican las secciones que se repetirán en la pantalla. Esta línea también hace uso de la link_tofunción para que podamos crear un enlace de inicio, por así decirlo, en nuestra página de blog que enlaza con la raíz. La link_tofunción toma dos argumentos, la ruta a la que se vinculará y el texto de anclaje.

@yield('content')
La @yieldpalabra clave es una forma de hacer sustitución de código o códigos cortos, por así decirlo. Definiremos lo que realmente vamos a poner en esta área cedida en nuestros archivos de vista.


Crear archivos de vista

Para este ejemplo, necesitamos algunos archivos de visualización. En nuestro /app/views/blogpostsdirectorio podemos crear index.blade.phpasí como show.blade.phpEsos archivos se verán así:

index.blade.php

show.blade.php

Esto podría ser un poco nuevo para ti, lo fue para mí. De hecho, diría que hay muchos pros y contras en el uso de un motor de plantillas, pero como realmente estamos tratando de ser puristas de Laravel aquí, haremos un esfuerzo adicional y profundizaremos en Blade . Los archivos de visualización deben comenzar con la palabra clave @extends como se ve aquí para poder hacer referencia a la página maestra que se utilizará. Además, define áreas de código para inyectar en la página maestra definiendo secciones utilizando las palabras clave @section y @stop . Todas las construcciones de programación normales, y algunas nuevas, están disponibles para usted como puede ver aquí.

Si declaraciones

Bucles

Incluye


Actualizar el controlador de Blogposts

Ahora que tenemos una página maestra y algunos archivos de vista creados, podemos modificar el controlador de Blogposts para que haga uso de las vistas en lugar de solo devolver datos al navegador. Estas son las modificaciones que se deben realizar en los métodos index()show():


Revisar el flujo del programa

Revisemos el flujo del programa antes de intentar cargarlo en nuestro navegador.

Tenemos un routes.phparchivo que ha registrado todas nuestras rutas tranquilas para nosotros.
Route::resource('blogposts', 'BlogpostsController');

Luego golpearemos un controlador que tiene la lógica para nuestros métodos index () y show (). Consulte el código anterior.
class BlogpostsController extends BaseController {

El controlador hará uso del modelo Blogpost.

Al hacer uso del modelo, podemos obtener los datos que queramos de la base de datos. Una vez que el controlador ha utilizado el modelo para obtener los datos de la base de datos, seguirá adelante y renderizará una vista View::make()pasando los datos necesarios. Cuando el controlador le indique hacer la vista, Laravel hará uso inteligente de la página maestra además de los fragmentos de html que se encuentran en los archivos de vista para crear la página renderizada final.


¡Probémoslo!

Configuramos muchas cosas en nuestra ruta, controlador, modelo y vista. Probémoslo para ver qué obtenemos🙂

Primero visitaremos http://you.rock/blogposts
publicaciones de la lista de blogs de laravel

Heeyyyy ¡Te ves🙂 bien Charlie Brown!

Ahora que vemos una lista de todas las publicaciones de blog, continúe y haga clic en uno de los enlaces para profundizar y ver información específica sobre la publicación de blog. Lo intentaremoshttp://you.rock/blogposts/laravel-eloquent-orm-tutorial
publicación única del blog de laravel

¡Excelente! ¡Ver publicaciones individuales usando una sintaxis de URL bonita también funciona!

Otra ventaja es que al incluir Twitter Bootstrap en la página maestra, podemos ver el aspecto visual mucho mejor que cuando estábamos descargando JSON por primera vez en el navegador. Cuando solo queremos probar nuestra lógica y no preocuparnos por el front-end, es genial poder simplemente devolver JSON o usar la función dd(), o die dump.

Esto es realmente emocionante, ¡estamos progresando muchísimo para poner al día nuestras habilidades con Laravel!