NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

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

ScopeVyberie
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 kryptomien

Odoslaní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.