"Si un trabajador quiere hacer bien su trabajo, primero debe afilar sus herramientas." - Confucio, "Las Analectas de Confucio. Lu Linggong"
Página delantera > Programación > Alcance global en Laravel (StepWise).

Alcance global en Laravel (StepWise).

Publicado el 2024-11-08
Navegar:928

Global Scope in Laravel (StepWise).

Los alcances globales son un concepto vital en Laravel, que permite la reutilización de las condiciones de Eloquent en toda su aplicación. Al implementar Global Scopes, puede aplicar condiciones específicas a consultas en todos los modelos, promoviendo la reutilización y la coherencia del código. Por el contrario, los ámbitos locales se limitan a un único modelo. En este tutorial, nos centraremos en la creación y utilización de ámbitos globales en Laravel.

  1. En este paso, crearemos una clase global dentro de un aplicación/Ámbitos/ActiveScope
where('is_active', '=', '1');

        //or we can write
        $builder->whereIsActive('1');

    }
}
  1. Ahora defina ActiveScope en el modelo de usuario. Deberíamos anular el método de arranque de un modelo determinado y utilizar el método addGlobalScope:

Después de agregar ActiveScope en el modelo, User::all() generará el siguiente SQL.

select * from `users` where `is_active` = '1'

Puede haber escenarios en los que desee recuperar todos los datos sin aplicar el alcance global. En Laravel, puedes omitir un alcance global y recuperar todos los datos usando el método withoutGlobalScope.

User::withoutGlobalScope(ActiveScope::class)->get();

Si desea eliminar varios o todos los alcances globales aplicados a un modelo, puede usar el método withoutGlobalScopes en Laravel. Este método le permite omitir todos los ámbitos globales o especificar los que desea eliminar. Aquí tienes un ejemplo:

// Remove all of the global scopes...
User::withoutGlobalScopes()->get();
// Remove some of the global scopes...
User::withoutGlobalScopes([
    ActiveScope::class, AgeScope::class
])->get();

Y si te encanta el contenido y quieres apoyar más artículos increíbles, ¡considera invitarme a un café! ☕️? Su apoyo significa mucho para mí y ayuda a que el conocimiento siga fluyendo. Puedes hacerlo aquí mismo: ? Cómprame un café

Declaración de liberación Este artículo se reproduce en: https://dev.to/aj_c6413caf1a793de3a2163b/global-scope-in-laravel-stepwise-1ij8?1 Si hay alguna infracción, comuníquese con [email protected] para eliminarla.
Último tutorial Más>

Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.

Copyright© 2022 湘ICP备2022001581号-3