En este tutorial, hablaremos sobre los ámbitos de consulta global y la paginación, entre otros temas. En primer lugar, haremos algunos ajustes en el archivo de vista actual que muestra un solo hilo. En este momento, el contenido está centrado en un diseño de estilo de una columna. Modificaremos esto a un diseño de dos columnas con el contenido principal en el lado izquierdo. Luego, agregaremos una columna más pequeña a la derecha y luego comenzaremos a agregar información básica de tipo meta que podría ser útil para el usuario de la aplicación. En el camino, abordaremos los ámbitos de consulta globales, la función auxiliar str_plural y la paginación simple en Laravel. Empecemos.


Refactorización de hilos / show.blade.php

Cambiemos un poco las cosas en la parte frontal para dejar espacio para algunas funciones adicionales en la página. Actualmente, al ver un solo hilo con sus respuestas, todo está alineado en el centro de la página. Podemos refactorizar esto para mover las cosas un poco hacia la izquierda, abriendo espacio para información de tipo meta en el lado derecho. Continúe y abra los hilos / show.blade.php y podemos hacer estos ajustes.


Uso de Bootstrap Offset para controlar el diseño

En primer lugar, eliminaremos el desplazamiento en algunas columnas así:
ejemplo de offset de columna de arranque

Esta columna está dentro de una fila de Bootstrap. Eliminar el desplazamiento mueve este elemento hacia el lado izquierdo de la siguiente manera:
bootstrap sin columna de compensación

Por supuesto, el título ahora está desplazado hacia la izquierda, pero las respuestas todavía están en el medio. Cambiemos esos también. Para ello, eliminaremos una fila completa y volveremos a colocar el bucle foreach en la vista.
moviendo el foreach en la vista

Esto tiene el resultado de empujar nuestras respuestas a los hilos hacia la izquierda, al igual que nuestro hilo principal.
las respuestas ahora se mueven a la izquierda

Finalmente, también necesitaremos mover el formulario de respuesta para los hilos a la izquierda. Ok, eso es bastante fácil. Solo necesitamos eliminar una fila y colocar el código del formulario justo después de cada uno que acabamos de mover. Solo colocaremos el código completo para esto aquí.

Ahora tenemos todo alineado y hay mucho espacio en el lado derecho de la página para agregar alguna otra información sobre el hilo o usuario.
diseño del lado izquierdo de bootstrap


Uso de matemáticas básicas para columnas Bootstrap

Sabemos que las columnas de Bootstrap se dividen en 12 unidades en total. En el lado izquierdo de la página, estamos ocupando 8 unidades hasta ahora. Bueno, nos sobraron 4 para el ancho total. Podemos agregar una columna con espacios de 4 unidades para ocupar el resto del lado derecho de la página. Esto nos dará el ancho total de 12 para la página completa. El código resaltado a continuación, nos da esa nueva columna en el lado derecho de la página.

¡Luciendo bastante bien!
bootstrap 8 columna izquierda 4 columna derecha


Usando la columna de la derecha para Meta

En esa columna de la derecha, ahora podemos colocar alguna información sobre el hilo o usuario. Por ejemplo, podemos usar la instancia de Carbon vinculada a nuestra variable para mostrar cuánto tiempo hace que se publicó el hilo. Eso es realmente fácil de hacer usando este código.

¡Agradable!
ejemplo de carbon diffForHumans


Introducción a los ámbitos de consulta globales

Un alcance de consulta global en Laravel es un alcance de consulta que se aplica automáticamente a todas las consultas. Esto es por modelo. Entonces, por ejemplo, si agregamos un alcance de consulta global al modelo de Thread, queremos decir que para todas las consultas de Thread que se ejecutan, la aplicación también debe aplicar lo que está definido en el alcance de la consulta. Muestremos un código para ver cómo funciona.

Abra el modelo Thread.php y colocaremos el alcance de la consulta global dentro del método boot (). Laravel está diseñado para activar este método automáticamente.

Ok, vemos esto, pero ¿cuál es el propósito? Bueno, en breve agregaremos algunos detalles adicionales como el recuento de respuestas a la columna del lado derecho. Es posible simplemente usar nuestras relaciones de modelo existentes para obtener estos datos. Este enfoque es una alternativa si desea una forma de hacer que esos recuentos de respuestas estén disponibles como su propia propiedad y con un número menor de consultas SQL que se activen en la base de datos. Esencialmente, gracias al código anterior, ahora tenemos una replies_countpropiedad a la que podemos hacer referencia en la vista. Veamos.

Mirando esto ahora, podemos ver que realmente está funcionando.
ejemplo de laravel de alcance global


Cómo funciona str_plural ()

Ahora podemos echar un vistazo a una función auxiliar de laravel realmente útil que toma decisiones inteligentes sobre cómo pluralizar o no pluralizar una palabra en particular, en función del número de esa cosa en particular. Por ejemplo, si tenemos 3 respuestas a un hilo, queremos ver 3 respuestas en la página. Sin embargo, si solo tenemos 1 respuesta, no queremos que la página muestre 1 respuestas. ¿Cómo podemos arreglar eso? Puedes arreglar eso con str_plural (). Actualmente, tenemos "respuestas" codificadas en la vista. Vamos a eliminar las 'respuestas' codificadas de forma rígida y las reemplazaremos por {{str_plural ('reply', $ thread-> replies_count)}} así.

La función auxiliar str_plural () toma dos argumentos. El primer argumento es una cadena, que es la palabra singular con la que está tratando. El segundo argumento es un número entero que representa el recuento de cuántas de esas cosas tienes. Entonces, con nuestro código en su lugar, si visitamos un hilo que solo tiene 1 respuesta, está diciendo correctamente "1 respuesta" y no "1 respuestas". Muy agradable.
caso de uso de ejemplo str_plural


Agregar paginación a las respuestas

Podemos agregar paginación a la sección de respuestas con bastante facilidad. Podemos hacer un pequeño ajuste al método show () en ThreadsController, y también actualizar el marcado en la vista threads / show.blade.php para ver este trabajo. Primero, abra ThreadsController.php y ajuste el código así.

Controlador

Ver

La paginación está completa
ejemplo de paginación de laravel


Resumen de paginación y alcances de consultas globales

Este fue un pequeño tutorial divertido que arregló nuestra vista threads / show.blade.php con algo de metainformación genial. También aprendimos cómo configurar ámbitos de consulta globales y por qué podríamos utilizarlos. Además, vimos lo fácil que era agregar paginación como un jefe en su aplicación.