Query Scopes

15/17

Lectura

Otra de las posibilidades que tenemos con los modelos es que podemos definir el alcance de las operaciones que realicemos con los modelos a través de los Scopes.

...

Regístrate o inicia sesión para leer el resto del contenido.

Aportes 11

Preguntas 0

Ordenar por:

¬ŅQuieres ver m√°s aportes, preguntas y respuestas de la comunidad?

o inicia sesión.

Interesante, en resumen, lo que hacen estas query‚Äôs scopes es anexar m√°s condiciones a la consulta original, pero las anexara siempre que requieras usar el modelo, de esa forma le hace el filtro a absolutamente todas las consultas que hagas para dicho modelo, puede llegar a ser √ļtil en casos particulares

Interesante la explicación del global Scope, les recomiendo ver un ejemplo de implementación.

Generalmente utiliz√≥ los Local Scope, creo que s√≥lo en una ocasi√≥n necesite de un GlobalScope, pero el m√°s com√ļn que he utlizado es crear un Global Scope para un campo published_at de tipo datetime, se vuelve muy √ļtil. Lo que hace es que evalua que s√≥lo publique aquellos registros que NO tengan fechas futuras.

namespace App\Scopes;

use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Scope;

class PublishedScope implements Scope
{
    public function apply(Builder $builder, Model $model)
    {
        $builder->where('published_at', '<=', \Carbon\Carbon::now());
    }
}

Query Scopes en Laravel 9.x cambió

ver documentación oficial

Scope o alcances es el nivel de funcionalidad de nuestra clase, variable o metodo hasta donde puede funcionar

Los Query Scopes permiten limitar la información que ven los usuarios de la App, si así lo hemos programado.

Genial, se me ocurre que se pueden usar para listar los registros con status_id = 1 (activos) y no tener que hacer un where en cada acción de controlador, excelente herramienta

Super interesante los Scopes, seg√ļn lo que entend√≠ los usar√≠a para ahorrar recursos cuando sea necesario.

Desconocía totalmente este tema pero hubiera estado interesante ver un caso real o ver el ejemplo funcionando en video

Un ejemplo sencillo de un Scope es enviar los ids de un modelo que no se quieren buscar:

Local Scope esta brutal me gusto mucho y expandió mi mente para tenerlo presente