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

Polia na triedenie deklarujete cez allowedSorts(). Reťazec sa zmení na AllowedSort::field(); AllowedSort::custom() pripojí vlastnú implementáciu Sort:

use RoundlyConsulting\QueryBuilder\AllowedSort;

->allowedSorts(
    'title',                                     // shorthand for AllowedSort::field('title')
    AllowedSort::field('popularity', 'views'),   // sort=-popularity → ORDER BY views DESC
    AllowedSort::custom('length', new TitleLengthSort),
)
->defaultSort('-created_at')                     // applied only when no sort param is present

Syntax triedenia

  • sort=title triedi vzostupne; úvodné - (sort=-title) triedi zostupne.
  • sort=-created_at,name použije viac triedení zľava doprava.
  • Opakovaný stĺpec sa zlúči do prvého výskytu — sort=title,-title triedi podľa title vzostupne, a to raz.
  • Použije sa najviac limits.max_sorts stĺpcov (predvolene 5), počítané po odstránení duplicít. Rátajú sa len triedenia z allow-listu, takže v režime ignore neznámy token nikdy nevytlačí platný, ktorý nasleduje za ním.

Predvolené triedenie

defaultSort() má rovnakú syntax — prefix - a viac stĺpcov oddelených čiarkami — a spustí sa len vtedy, keď request neuvádza žiadne triedenie — alebo v režime ignore žiadne, ktoré allow-list pozná. Token predvoleného triedenia, ktorý zodpovedá povolenému triedeniu, ho použije (vrátane interného stĺpca či vlastného triedenia); akýkoľvek iný token sa zoradí ako obyčajný stĺpec, takže predvolené triedenie nemusí byť v allow-liste:

QueryBuilder::for(Post::class)
    ->allowedSorts('title', AllowedSort::field('popularity', 'views'))
    ->defaultSort('-popularity,id');   // ORDER BY views DESC, id ASC

// ?sort=title → ORDER BY title ASC (the default is skipped)

Prehľad metód

MetódaEfekt
AllowedSort::field($name, $internalName = null)orderBy(<column>, <direction>)
AllowedSort::custom($name, Sort $sort, $internalName = null)Deleguje na vašu implementáciu Sort.
defaultSort(string $sort)Poradie, keď request neobsahuje parameter sort.

Smery predstavuje enum SortDirection: Ascending (asc) a Descending (desc); SortDirection::fromToken('-title') určí smer tokenu.

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.