Všetky balíky
Advertisements for Laravel
Dopytové scopy
Výstižné scopy odpovedajú na bežné otázky bez ručne písaných podmienok where:
use RoundlyConsulting\Advertisements\Facades\Advertisements;
use RoundlyConsulting\Advertisements\Models\Advertisement;
Advertisement::query()->published()->get(); // published_at reached, not archived
Advertisement::query()->active()->get(); // published AND not expired
Advertisement::query()->scheduled()->get(); // published_at in the future
Advertisement::query()->expired()->get(); // expires_at passed
Advertisement::query()->draft()->get(); // never published
Advertisement::query()->archived()->get(); // explicitly archived
Advertisement::query()->forAuthor($user)->get();
// The facade exposes a fresh builder for chaining:
Advertisements::query()->active()->get();Všetky scopy
| Scope | Vyberie |
|---|---|
published() | published_at už nastal, nie je archivovaná — vrátane reklám po expires_at. |
active() | Zverejnená a neexpirovaná — to, čo servírujete. |
scheduled() | published_at v budúcnosti, nie je archivovaná. |
expired() | expires_at uplynul, nie je archivovaná. |
draft() | Nikdy nezverejnená (bez published_at), nie je archivovaná. |
archived() | Výslovne archivovaná. |
forAuthor($model) | Patrí danému polymorfnému autorovi. |
forPlacement($placement) | Priradená k umiestneniu — model, id alebo slug. |
inCategory($category, $includeDescendants = false) | V kategórii — model, id alebo slug — voliteľne aj vo vnorených. |
targetedAt($viewer) | Servírovaná pre polohu diváka (pozri Geografické cielenie). |
whereSlug($slug, locale: null) | Podľa slugu, zo sluggable-for-laravel. |
Skladanie
Scopy sa dajú kombinovať navzájom aj s bežným Eloquentom:
Advertisement::query()
->active()
->forPlacement('sidebar')
->inCategory('vehicles', includeDescendants: true)
->forAuthor($user)
->latest('published_at')
->paginate(20);Advertisements::query() vracia nový builder pre nakonfigurovaný model (pozri Vlastné modely); Advertisements::active() je query()->active() a Advertisements::in($placement) k tomu pridá forPlacement().
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.