En los tutoriales recientes, hemos pasado de instalar laravel hasta configurar controladores RESTful . En 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 opiniones. ¡Vamos a hacerlo!
Motor de plantilla de hoja
¡Ahora podemos comenzar a hacer algunas vistas! Recordará que en nuestro Blogposts Controller estábamos devolviendo los datos al navegador de la siguiente manera:
¡Empecemos a usar Vistas en su lugar! Cuando queremos cargar una vista, lo haremos utilizando el make()
método de la View
Fachada. También queremos pasar todos los datos que necesitemos a la vista y podemos hacerlo de una de tres maneras.
En el fragmento anterior, blogposts/index
se refiere a /app/views/blogposts/index
la 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/layouts
directorio.
¡Frio! En el fragmento de arriba, notarás dos cosas que pueden parecer un poco extrañas.
{{ link_to('/', 'Larablog') }}
Las {{y}} indican secciones que se repetirán en la pantalla. Esta línea también hace uso de la link_to
funció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_to
función toma dos argumentos, la ruta a la que vinculará y el texto de anclaje.
@yield('content')
La @yield
palabra clave es una forma de hacer una 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 vista. En nuestro /app/views/blogposts
directorio podemos crear index.blade.php
así como show.blade.php
. Esos 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 al usar un motor de plantillas, pero dado que realmente estamos tratando de ser puristas de Laravel aquí, haremos un esfuerzo extra y profundizaremos en Blade . Los archivos de vista 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 simplemente devolver datos al navegador. Estas son las modificaciones que se deben realizar en los métodos index()
y show()
:
Revise el flujo del programa
Revisemos el flujo del programa antes de intentar cargarlo en nuestro navegador.
Tenemos un routes.php
archivo 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 (). Ver código arriba.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 indica que realice la vista, Laravel utilizará de manera inteligente 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
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
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, sigue siendo genial poder simplemente devolver JSON o usar la dd()
función de volcado o morir.
Esto es realmente emocionante, ¡estamos haciendo un gran progreso para poner al día nuestras habilidades con Laravel!
0 Comentarios