Важные аспекты:
- Ограничения запросов улучшают читаемость и повторное использование кода, инкапсулируя ограничения в запросах Eloquent.
- Локальные ограничения запросов применяются вручную, в то время как глобальные ограничения запросов применяются ко всем запросам модели по умолчанию.
- Глобальные ограничения запросов предотвращают забывание включать ограничения, обеспечивая единое фильтрование.
- `scopePublished` и `scopeNotPublished` - это примеры локальных ограничений запросов, используемых для фильтрации блог-постов по статусу публикации.
- `TeamScope` - это пример глобального ограничения запросов, используемого для фильтрации запросов по ID команды в многоарендном приложении.
- Глобальные ограничения могут быть применены с помощью атрибута `ScopedBy` или метода `addGlobalScope` в методе `booted` модели.
- Анонимные глобальные ограничения предоставляют альтернативный способ определения ограничений внутри самой модели.
- `withoutGlobalScopes` позволяет игнорировать глобальные ограничения в конкретных запросах.
- Ограничения запросов облегчают поддержку кода и уменьшают риск ошибок при повторном использовании сложных ограничений.
laravel-news.com
Learn to master Query Scopes in Laravel
