Subconsultas con SQL y Eloquent (selectRaw)

Ya estamos obteniendo el autor utilizando eager loading, pero aún nos falta obtener la cantidad de votos y de comentarios en una sola consulta.

En programación, hay muchas maneras de solucionar un problema, hoy les enseñaré cómo crear subconsultas SQL para obtener información de otras tablas (en nuestro caso la cantidad de votos y la cantidad de comentarios) dentro de la consulta a la tabla de tickets.

Las subconsultas en SQL como su nombre lo indica son consultas que se escriben y ejecutan dentro de otras consultas de SQL.

Para facilitar tanto el aprendizaje como el desarrollo del código, lo primero que haremos será probar las subconsultas dentro de PHPMyAdmin (o Sequel Pro o cualquier otra aplicación que estés usando para manejar la base de datos) y luego pasaremos el código a Laravel.

Mira el código de esta lección en GitHub: actual, resultadocomparación.

Regístrate para ver ésta y cientos de lecciones exclusivas.

Los ORMs y el problema de N+1

Hay una tendencia nociva de despotricar contra las tecnologías de más bajo nivel, cada vez que sale una tecnología nueva y de más alto nivel. Por ejemplo: hablar bien de Laravel o WordPress pero mal de PHP no tiene sentido, hablar bien de Sass, Less o Stylus pero mal de CSS es absurdo, hablar bien de los ORMs y decir que escribir SQL está mal, es ilógico. A la final Laravel y WordPress están hechos en PHP, Sass compila a CSS y los ORMs generan consultas SQL.

Si queremos ser verdaderos profesionales, debemos entender no sólo las tecnologías de alto nivel (Laravel, Eloquent) pero también los lenguajes en los que se apoyan estos frameworks y componentes (PHP, SQL).

Trabajar con Eloquent, por ejemplo, pero ignorar que el ORM necesita ejecutar consultas SQL a la base de datos y que la cantidad de consultas que se necesitan para cargar una página sencilla pueden salirse de control si no somos cuidadosos es algo delicado en cuanto al rendimiento de tu aplicación se trata, y no hablo de sobre optimizar sino de sentido común.

Por ejemplo: ¿Sabes cuál es el problema de N+1 en los ORMs? ¿Sabes cuantas consultas se están generando en TeachMe para mostrar el listado de tickets y cómo mejorar eso? ¿No? Entonces estás viendo el curso correcto.

Por supuesto para presentar un prototipo, Eloquent y otros ORMs son geniales, pero una vez terminada la llamada de Skype con nuestro cliente imaginario, quiero decir, segunda parte del curso, es hora de comenzar a aprender temas más avanzados y refactorizar nuestra aplicación…

Regístrate para ver ésta y cientos de lecciones exclusivas.

URLs amigables y rutas con slugs en Laravel

Los slugs son formas «amigables» de representar el texto de un enlace de tal manera que no se muestren caracteres extraños o variables confusas y que pueda ser leído y entendido por una persona. Desde hace algunos años los buscadores han tomado este factor como un determinante fundamental en el posicionamiento de resultados en búsquedas web, el slug puede contener las palabras clave de un artículo y de esta forma indicarle al lector si la publicación está relacionada con el término de la búsqueda.

Ver post

Organizar código PHP con CS Fixer siguiendo los estándares PSR

Un código desordenado siempre «hablará mal de un programador». Se torna muy difícil encontrar un error dentro de un montón de líneas de código que no siguen ningún estándar o estructura lógica. Es fácil programar sin pensar que otro programador  (o tú mismo en un futuro) necesitará agregar nuevas sentencias y que gastará el doble del tiempo o más tan sólo en entender el código.

Ver post

Hosting gratuito para Laravel con OpenShift de Redhat

Al momento de desarrollar aplicaciones web uno de los temas que toma mucha importancia es el referente al servicio de hosting en el cual se quiere desplegar el proyecto, en ocasiones pueden llegar a ser muy costosos incluso en una fase muy temprana del desarrollo, por lo cual siempre es bueno buscar ciertas alternativas que nos permitan contar con todas las funcionalidades de un servidor de producción pero en un ambiente más pequeño y a un menor costo.

Ver post

Suscríbete a nuestro boletín

Te enviaremos publicaciones con consejos útiles y múltiples recursos para que sigas aprendiendo.

Suscríbete a nuestro boletín

Recibe consejos útiles, promos y múltiples recursos directamente en tu correo.

Tu nombre y correo serán enviados directamente a MailChimp. No compartiremos tus datos con otras empresas.