Cuando trabajamos con ORMs -como Eloquent- obtenemos la ventaja de hacer consultas de modelos relacionados fácilmente pero con la desventaja que no sabemos a simple vista cómo se están haciendo dichas consultas. Laravel por defecto, realiza «lazy loading» o una carga de los datos de modelos relacionados solo cuando accedes a ellos. Esto produce que se hagan N consultas extra por la cantidad de registros que se relacionan con el otro modelo. Son consultas adicionales que se hacen a la base de datos y no importan mucho cuando estamos desarrollando pero cuando tenemos la aplicación en producción podría afectar el desempeño. En la lección de hoy veremos cómo podemos verificar las consultas ejecutadas por Eloquent / Fluente y cómo solucionar este problema usando Eager Loading.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Durante las últimas lecciones hemos creado filtros para el listado de posts de la aplicación. En esta lección trabajaremos en otro tipo de listado, el cual es el que permitirá filtrar solo los posts propios del usuario conectado. Además, refactorizaremos el controlador encargado de mostrar los listados, entre otros detalles.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Cuando tenemos variables que queremos mostrar en varias vistas, lo ideal es poner en práctica el principio DRY «Don’t repeat yourself» y enviar dichas variables desde una clase particular y así evitar recargar los controladores con código repetido. Este tipo de clases en Laravel se llaman View Composers y en esta lección veremos cómo hacer uso de ellas en nuestro proyecto.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Siguiendo con la refactorización del listado de posts de la aplicación, nos encontramos con que nuestro controlador PostController tiene algunas funciones que no son acciones sino helpers. Esto puede crear confusión, por lo que en esta lección la dedicaremos a implementar un tipo de controlador disponible desde Laravel 5.4 conocido como Single Action Controller o controladores de una sola acción. Veamos a continuación:
Regístrate para ver ésta y cientos de lecciones exclusivas.
En esta lección seguimos mejorando la vista agregando nuevas opciones para ver los posts de la aplicación. Para ello desarrollaremos la funcionalidad de mostrar los posts ordenados por fecha de creación: posts antiguos o posts recientes y la posibilidad de reordenarlos. También resolveremos cómo mantener el orden escogido en los posts cuando navegamos con la paginación. Veamos a continuación:
Regístrate para ver ésta y cientos de lecciones exclusivas.
Cuando utilizamos Laravel trabajamos con colecciones, las cuales generalmente debemos listar en alguna parte de nuestro sistema. Para ello Blade nos brinda la directiva @each que nos ayuda a realizar esta tarea de una manera fácil y sencilla.
En esta lección mejoraremos el listado de post agregando elementos, como status y categoría, para poder identificar los posts fácilmente. Además trabajaremos con los seeders para crear registros con fechas de creación y estatus diferentes, de manera tal que tengamos datos ficticios que nos permitan ver diferentes resultados cuando filtremos los posts. Por supuesto nos apoyaremos en las pruebas escritas durante todo el curso para garantizar que todo sigue funcionando correctamente. Ver post
Laravel trae por defecto un sistema de autenticación de usuarios que puedes agregar a tu aplicación con el comando php artisan make:auth. Este sistema incluye la funcionalidad para la recuperación de contraseña de un usuario, que envía un email con el mensaje y el enlace para que el usuario pueda recuperarla, sin embargo, este correo es genérico y en inglés, por lo que si tu aplicación está en español o quieres un mensaje más descriptivo necesitarás personalizar esta funcionalidad. Con este tutorial aprenderás cómo crear un mensaje para el correo de recuperación de contraseñas adaptado al contexto de tu aplicación:
En la lección anterior logramos filtrar los posts por categorías, pero también puede ser útil filtrarlos por su estado: completado o pendiente. Es por ello que en esta lección aprenderás a trabajar con los Scopes de Eloquent usando el método scopes que nos permite implementar múltiples scopes a la vez de forma dinámica. También aprenderás cómo filtrar y mostrar diferentes resultados usando una única acción dentro de un controlador.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Una funcionalidad importante para nuestro foro es que los usuarios de la aplicación puedan filtrar los posts relacionados con una categoría en particular. En esta lección aprenderás a desarrollar este feature apoyándonos con el desarrollo guiado por pruebas o TDD. Haremos un repaso del uso de scopes de Eloquent, menús con el componente Styde Html, sobre el método getRouteKeyName y el uso de métodos para trabajar con colecciones.
Regístrate para ver ésta y cientos de lecciones exclusivas.
Styde usa cookies para guardar tus preferencias y para seguimiento anónimo AceptarLeer más
Privacy & Cookies Policy
Privacy Overview
This website uses cookies to improve your experience while you navigate through the website. Out of these, the cookies that are categorized as necessary are stored on your browser as they are essential for the working of basic functionalities of the website. We also use third-party cookies that help us analyze and understand how you use this website. These cookies will be stored in your browser only with your consent. You also have the option to opt-out of these cookies. But opting out of some of these cookies may affect your browsing experience.
Necessary cookies are absolutely essential for the website to function properly. This category only includes cookies that ensures basic functionalities and security features of the website. These cookies do not store any personal information.
Any cookies that may not be particularly necessary for the website to function and is used specifically to collect user personal data via analytics, ads, other embedded contents are termed as non-necessary cookies. It is mandatory to procure user consent prior to running these cookies on your website.