Adquiere este curso para tener acceso a todas las lecciones
Comprar curso9. Query Scopes en Eloquent
Los Query Scopes son una característica avanzada de Eloquent que te permite definir un conjunto de restricciones en tus consultas, lo que hace que tu código sea más eficiente y más fácil de leer. En este módulo, aprenderás cómo utilizar los Query Scopes en Eloquent para mejorar tus consultas.
4 comentarios
Inicia sesión para comentar
Comentarios:
-
Victor Arana Flores hace 1 año Destacado
Los Query Scopes son una herramienta avanzada de Eloquent que te permiten definir conjuntos de restricciones que se aplicarán a tus consultas. Esto hace que tus consultas sean más eficientes y fáciles de leer, ya que puedes reutilizar fragmentos de código en diferentes partes de tu aplicación.
Para utilizar los Query Scopes, debes definir una función en tu modelo que se llame como el scope que deseas utilizar. Por ejemplo, si deseas definir un Query Scope llamado "activo", debes definir una función llamada "scopeActivo". Dentro de esta función, puedes utilizar los métodos de consulta de Eloquent para definir las restricciones que deseas aplicar a tus consultas.
Una vez que hayas definido tu Query Scope, puedes utilizarlo en tus consultas de la misma manera que utilizas cualquier otro método de consulta de Eloquent. Por ejemplo, si deseas recuperar todos los usuarios activos, puedes utilizar el scope de la siguiente manera:
$usuariosActivos = Usuario::activo()->get();
En este ejemplo, "Usuario" es el nombre de tu modelo y "activo" es el nombre del Query Scope que definiste anteriormente. Luego, utilizas el método "get()" para recuperar los resultados de la consulta.
Los Query Scopes también pueden aceptar argumentos, lo que te permite personalizar aún más tus consultas. Por ejemplo, si deseas definir un Query Scope que te permita recuperar todos los usuarios que se unieron después de una fecha específica, puedes definirlo de la siguiente manera:
public function scopeDespuesDe($query, $fecha) { return $query->where('fecha_registro', '>', $fecha); }
En este ejemplo, el Query Scope se llama "despuesDe" y acepta un argumento de fecha. Luego, utilizas el método "where" de Eloquent para definir la restricción en la consulta.
Para utilizar este Query Scope, puedes hacer lo siguiente:
$usuariosDespuesDe = Usuario::despuesDe('2022-01-01')->get();
En este ejemplo, "Usuario" es el nombre de tu modelo, "despuesDe" es el nombre del Query Scope y "2022-01-01" es la fecha que deseas utilizar como argumento.
En resumen, los Query Scopes son una característica avanzada de Eloquent que te permite definir conjuntos de restricciones en tus consultas. Esto hace que tu código sea más eficiente y más fácil de leer, ya que puedes reutilizar fragmentos de código en diferentes partes de tu aplicación.
-
Willyberto Martinez hace 1 año
Saludos, muy buenos y pedagógicos tus cursos, te felicito. Tengo una duda, digamos que quisiera realizar esta consulta (SELECT COUNT(GENERO) AS cantidad FROM $tabla ORDER BY cantidad DESC) u otra consulta como esta (SELECT * FROM $tabla WHERE fecha BETWEEN valor1 AND valor2), espero haberme explicado, me gustaría estructurar consultas un poco más complejas. Gracias.
-
Victor Arana Flores hace 1 año
Hola, te comparto este recurso que te ayudara a pasar de sql a eloquent
https://jjlabajo.github.io/SQLtoEloquent/ -
Willyberto Martinez hace 1 año
Excelente, muchas gracias.
-
-
Mkevyn hace 1 año
En laravel10 puedes crear el scope de la siguiente manera con artisan que se crea dentro de App\Models\Scopes :
php artisan make:scope NotDepartedScope -
Julian Alzate hace 2 años
victor creo que este video va despues del la clase 9 ya que en esta explican algo que aquí aparece
-
Victor Arana Flores hace 2 años
Hola Julian, gracias. Ahorita lo corrijo
-