«Если рабочий хочет хорошо выполнять свою работу, он должен сначала заточить свои инструменты» — Конфуций, «Аналитики Конфуция. Лу Лингун»
титульная страница > программирование > Глобальная область видимости в Laravel (StepWise).

Глобальная область видимости в Laravel (StepWise).

Опубликовано 8 ноября 2024 г.
Просматривать:896

Global Scope in Laravel (StepWise).

Глобальные области видимости — это жизненно важная концепция в Laravel, позволяющая повторно использовать условия Eloquent во всем вашем приложении. Внедряя глобальные области действия, вы можете применять определенные условия к запросам во всех моделях, способствуя повторному использованию кода и обеспечению согласованности. Напротив, локальные области ограничены одной моделью. В этом уроке мы сосредоточимся на создании и использовании глобальных областей видимости в Laravel.

  1. На этом этапе мы создадим глобальный класс внутри приложение/Области/ActiveScope
where('is_active', '=', '1');

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

    }
}
  1. Теперь определите ActiveScope в модели пользователя. Мы должны переопределить метод загрузки данной модели и использовать метод addGlobalScope:

После добавления ActiveScope в модель User::all() сгенерирует следующий SQL.

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

Возможны сценарии, в которых требуется получить все данные без применения глобальной области. В Laravel вы можете обойти глобальную область видимости и получить все данные, используя метод WithoutGlobalScope.

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

Если вы хотите удалить несколько или все глобальные области видимости, примененные к модели, вы можете использовать метод WithoutGlobalScopes в Laravel. Этот метод позволяет обойти все глобальные области или указать те, которые вы хотите удалить. Вот пример:

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

А если вам нравится контент и вы хотите поддерживать больше замечательных статей, подумайте о том, чтобы купить мне кофе! ☕️? Ваша поддержка очень важна для меня и помогает распространять знания. Вы можете сделать это прямо здесь: ? Купи мне кофе

Заявление о выпуске Эта статья воспроизведена по адресу: https://dev.to/aj_c6413caf1a793de3a2163b/global-scope-in-laravel-stepwise-1ij8?1 Если есть какие-либо нарушения, пожалуйста, свяжитесь с [email protected], чтобы удалить ее.
Последний учебник Более>

Изучайте китайский

Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.

Copyright© 2022 湘ICP备2022001581号-3