"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > Global Scope in Laravel (StepWise).

Global Scope in Laravel (StepWise).

Published on 2024-11-08
Browse:413

Global Scope in Laravel (StepWise).

Global Scopes are a vital concept in Laravel, enabling the reuse of Eloquent conditions throughout your application. By implementing Global Scopes, you can apply specific conditions to queries across all models, promoting code reuse and consistency. In contrast, Local Scopes are limited to a single model. In this tutorial, we will focus on creating and utilizing Global Scopes in Laravel.

  1. In This Step, we will create a Global Class inside a app/Scopes/ActiveScope
where('is_active', '=', '1');

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

    }
}
  1. Now Define ActiveScope in the User Model. We Should override a given model’s boot method and use the addGlobalScope method:

After adding the ActiveScope in model, User::all() will generate the following SQL.

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

There may be scenarios where you want to fetch all data without applying the global scope. In Laravel, you can bypass a global scope and fetch all data by using the withoutGlobalScope method.

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

If you want to remove multiple or all of the global scopes applied to a model, you can use the withoutGlobalScopes method in Laravel. This method allows you to bypass all global scopes or specify the ones you want to remove. Here's an example:

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

And if you love the content and want to support more awesome articles, consider buying me a coffee! ☕️? Your support means the world to me and helps keep the knowledge flowing. You can do that right here: ? Buy Me a Coffee

Release Statement This article is reproduced at: https://dev.to/aj_c6413caf1a793de3a2163b/global-scope-in-laravel-stepwise-1ij8?1 If there is any infringement, please contact [email protected] to delete it
Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3