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

Balík funguje bez akejkoľvek konfigurácie v hostiteľskej aplikácii. Publikovaný config/query-builder.php v plnom znení:

return [
    'parameters' => [
        'filter' => 'filter',   // filter[<name>]=<value>
        'sort'   => 'sort',     // sort=-created_at,name
    ],

    'pagination' => [
        'page_name'        => 'page',
        'per_page_name'    => 'per_page',
        'default_per_page' => 20,
        'max_per_page'     => 100,
    ],

    'mode' => [
        'unknown_filter' => 'reject',
        'unknown_sort'   => 'reject',
    ],

    'limits' => [
        'max_filter_values' => 50,   // most comma/array items per filter value
        'max_value_length'  => 255,  // most characters per individual value
        'max_sorts'         => 5,    // most allow-listed sort columns applied
    ],
];

Všetky kľúče

KľúčTypPredvolenéÚčel
parameters.filterstringfilterKľúč query stringu, ktorý nesie filtre. Reťazec; prázdna hodnota = nenastavená → filter.
parameters.sortstringsortKľúč query stringu, ktorý nesie reťazec triedenia. Reťazec; prázdna hodnota = nenastavená → sort.
pagination.page_namestringpageParameter stránky pre paginator — automaticky sa použije pri paginate()/simplePaginate() na QueryBuilder a dá sa prečítať cez pageName() v requeste s HasPageSize.
pagination.per_page_namestringper_pageNázov parametra veľkosti stránky (používa HasPageSize).
pagination.default_per_pageint20Veľkosť stránky, keď per_page chýba alebo je neplatné. Aspoň 1 a najviac max_per_page.
pagination.max_per_pageint100Horná hranica — per_page nad ňou vráti 422; zároveň pevný strop. Aspoň 1.
mode.unknown_filterstringrejectreject (HTTP 400) alebo ignore (kľúč sa zahodí) pre filtre mimo allow-listu.
mode.unknown_sortstringrejectreject (HTTP 400) alebo ignore (kľúč sa zahodí) pre triedenia mimo allow-listu. Ak ignore zahodí všetky požadované triedenia, použije sa defaultSort().
limits.max_filter_valuesint50Počet položiek (čiarka/pole) ponechaných v hodnote filtra; nadbytočné sa zahodia (ochrana pred DoS). Aspoň 1.
limits.max_value_lengthint255Počet znakov ponechaných v jednej hodnote filtra; dlhšie hodnoty sa skrátia. Aspoň 1.
limits.max_sortsint5Počet použitých stĺpcov triedenia po odstránení duplicít (ponechá sa prvý). Rátajú sa len triedenia z allow-listu, takže token zahodený v režime ignore nikdy nezaberie miesto platnému. Aspoň 1.

Poznámky

  • parameters.* — dodané predvolené hodnoty sú zmrazený wire kontrakt; meňte ich len spolu s frontendom.
  • Každý kľúč sa číta prísne: nenastavený kľúč — chýbajúci, null alebo prázdny (KEY= u hostiteľa) — použije predvolenú hodnotu a každá iná neplatná hodnota vyhodí InvalidConfigurationException z package-toolkit s názvom kľúča. Názvy parametrov musia byť reťazce, limity a veľkosti stránky celé čísla aspoň 1.
  • mode.* — presne reject alebo ignore. Preklep vyhodí výnimku, namiesto aby sa potichu použil reject.
  • limits.* — nadbytočné položky sa zahodia a príliš dlhé hodnoty skrátia; request sa kvôli tomu nikdy neodmietne. Neplatný limit vyhodí výnimku, namiesto aby sa pretypoval a obmedzil na 1.
  • Konfigurácia nemá env premenné — hodnoty meníte publikovaním konfiguračného súboru.

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.