¿Cómo configurar y formatear texto en tu aplicación de Laravel?
El dominio de la presentación visual y la configuración adecuada de los extractos de texto son esenciales para desarrollar aplicaciones web atractivas e intuitivas. Además de establecer un sistema de autenticación integrado, en Laravel, puedes manipular el formato del texto y trabajar con herramientas específicas para lograr una mejor interfaz de usuario.
¿Cómo se crea un método para formatear texto?
Crear un método para manejar el formato de texto en Laravel implica la utilización de PHP y su integración con la tecnología Blade. A continuación, se detallan los pasos que puedes seguir para lograrlo:
Desarrolla un nuevo método público.
Utiliza la sintaxis de anotaciones que comienza con @Jet y termina con @endJet.
Asigna un nombre pertinente a tu atributo.
Accede a la vista donde todos los elementos están en plural.
Configura el método para retornar el texto formateado. Emplea funciones de PHP para extraer partes del texto deseadas, por ejemplo:
Usar un método como substr() es clave para presentar al usuario solo una parte del contenido, logrando que el diseño siga una lógica intuitiva.
¿Qué pasos seguir para compilar y hacer visible el diseño?
Una vez configurado el formato del texto, es fundamental compilar los archivos CSS y JS necesarios para que el diseño sea visible. En un proyecto de Laravel, generalmente, se utiliza Webpack para gestionar estas tareas. Aquí te explicamos cómo:
Asegúrate de tener instalado Node.js y el administrador de paquetes npm.
Ejecuta el comando en tu terminal:
npm run dev
Este comando trabajará conforme a las configuraciones en el archivo webpack.mix.js, buscando los archivos en la carpeta de origen y publicándolos en el directorio public.
El resultado es tener tus archivos CSS y JS aplicados, dando vida al diseño creado.
¿Cómo implementar la paginación de manera efectiva?
La paginación mejora sustancialmente la experiencia de usuario al dividir el contenido en partes manejables. Implementarla en Laravel es bastante directo:
Después de imprimir tus datos, incluye el siguiente método para mostrar los enlaces necesarios de paginación:
{{$datos->links()}}
Revisa que al actualizar la página, los botones de paginación aparezcan correctamente formateados con tu diseño de Vuestra.
De esta forma, facilitas la navegación de tus usuarios en la aplicación web, permitiéndoles acceder al contenido de manera organizada.
Este recorrido es apenas el comienzo para empoderarte a trabajar con Laravel de manera eficiente y creativa. Recuerda que el aprendizaje continúa, y siempre hay nuevos aspectos de los que aprender y explorar en el desarrollo web. ¡Adelante y sigue practicando!
Me encanta que Laravel está tan preparado que ya incluye sus propios métodos par paginación!
Si a ustedes no se les muestra bien la paginación (Los estilos se rompen) les comparto esta solucón, solo deben escribir lo siguiente en donde va links:
{{ $posts->links("pagination::bootstrap-4")}}
Los estilos se rompan porque el HTML generado por defecto por el método 'links' es compatible con Tailwind CSS framework. Otra solución sería colocarlo en PageController.
si ambas son totalmente validas, el profe lo hiso con PHP nativo pero la clase Str es propia de laravel y justo en la version 7 que caban de sacar el mes pasado, se agregaron varios metodos para hacer mas fluida la api de esta clase
Para poder retornar menos de 10 post por paginacion hay que editar el método, en este caso lo deje en 5
Acá dejo lo siguiente https://laravel.com/docs/8.x/pagination#using-bootstrap en dado caso los elementos de la paginación a nivel de diseño no se les muestre bien sobre todo en Laravel 8, ya que por defecto, la paginación trabaja con Tailwind CSS framework
Gracias juan, excelente aporte, deberia estar mas arriba hahah Me ayudaste mucho estaba dando vueltas sin entender, Idolo
Muchas gracias por tu aporte!
Para los que tienen problemas de css a la hora de llamar $posts->links() se puede usar:
Paginator::useBootstrap()
dentro de la funcion posts del archivo PageController se soluciona el problema
Basicamente quedaría asi:
PageController.php
classPageControllerextendsController{publicfunctionposts(){Paginator::useBootstrap();returnview("posts",["posts"=>Post::with("user")->latest()->paginate(),]);}//... todo el resto de la clase PageController}
Y asi la linea de links en la vista:
posts.blade.php
{{$posts->links()}}
Aqui se puede encontrar mas información acerca de Paginators
Antes de agregar
Paginator::useBootstrap();
se debe incluir el llamado de use
Illuminate\Pagination\Paginator;
use Illuminate\Pagination\Paginator;classPageControllerextendsController{publicfunctionposts(){Paginator::useBootstrap();returnview('posts',['posts'=>Post::with('user')->latest()->Paginate(5)]);}publicfunctionpost(Post $post){returnview('post',['post'=> $post]);}}
Un tema que queda acá entre lineas es que para que funcionen los comandos que competen a npm se debe tener instalado Node.js
.
Una solución practica que encontré es entrar en el layout y sustituir las lineas:
Por las URLs directas de bootstrap que pueden ser encontradas en la documentación de su site.
RESUMEN
Diseño de enlace de paginacion y extracto de post
1Empezemos con el extracto del post
ATRIBUTOSCOMOVIMOSEN posts.blade.php para el estracto utilizamos
{{$post->get_excerpt}}//get_excerpt luego lo utilizaremos en Post.php...//para obtener atributo usuario->get_titulo //en Usuario.php hariamos public function getGetTituloAttribute(){...}-"Post.php"queremos substraer las primeras 140 palaabras
publicfunctiongetGetExcerptAttribute(){returnsubstr($this->body,0,140);}"listo el post ya tiene su extracto de 140 palabras"2Paginacionposts.blade.phpDebajo del foreach
//links es un method interno de laravel por haber usado paginator en PageController{{ $posts->links()}}
ya tenemos botones de paginacion
En laravel 8, te coloca ademas unos botones con iconos ( < > ) de siguiente y anterior en la paginación, si solo quieres dejar los botones sencillos usamos el siguiente metodo.
Si te refieres a los estilos, esta es la solución:
{{ $posts->links("pagination::bootstrap-4")}}
Si se está usando laravel 8x e instalas jetstream. ¿Hay alguna manera de usar bootstrap, o se está obligada a usar TailwindCSS?
en la paginación me salía al final los botonoes > y < enormes y pues se dañaba el diseño, esto soluciona mediente el uso de:
{{ $posts->links()}} cambiar por
{{ $posts->links("pagination::bootstrap-4") }}
en el earchivo de posts.blade.php
Presento el siguiente error al ejecutar el comando npm run dev
ERROR Failed to compile with 2 errors 16:57:36
error in ./resources/sass/app.scss
Module build failed (from ./node_modules/css-loader/index.js):
ModuleBuildError: Module build failed (from ./node_modules/sass-loader/dist/cjs.js):
ValidationError: Invalid options object. Sass Loader has been initialized using an options object that does not match the API schema.
alguien me puede ayudar?
me sale en la siguiente línea de código
return Str::limit($this->body,140);
}```
el siguiente error:
ParseError
syntax error, unexpected 'public' (T_PUBLIC), expecting end of file
¿Alguien sabe a que pueda deberse?
Pareces tener un error en la estructura de tu archivo con la palabra "public" para usar métodos públicos, privados o protegidos recuerda que deben estar dentro de una clase.
A mi me salia error, importe la libreria
use Illuminate\Support\Str;
Y listo
🚨Si tienes problemas con la paginación🚨
Estó es porque se requiere tailwind, dentro de " resources/views/layouts/app.blade.php" debes incluir esto:
En la vista solo mostrará 5 posts y más links de paginación.
Aplicar los enlaces de paginación
Para poder hacer esto primero hay que configurar que la data que queramos mostrar utilice el método paginate() como en este ejemplo de listado de post.