Všetky balíky
Query Builder for Laravel
Konfigurácia
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ľúč | Typ | Predvolené | Účel |
|---|---|---|---|
parameters.filter | string | filter | Kľúč query stringu, ktorý nesie filtre. Reťazec; prázdna hodnota = nenastavená → filter. |
parameters.sort | string | sort | Kľúč query stringu, ktorý nesie reťazec triedenia. Reťazec; prázdna hodnota = nenastavená → sort. |
pagination.page_name | string | page | Parameter 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_name | string | per_page | Názov parametra veľkosti stránky (používa HasPageSize). |
pagination.default_per_page | int | 20 | Veľkosť stránky, keď per_page chýba alebo je neplatné. Aspoň 1 a najviac max_per_page. |
pagination.max_per_page | int | 100 | Horná hranica — per_page nad ňou vráti 422; zároveň pevný strop. Aspoň 1. |
mode.unknown_filter | string | reject | reject (HTTP 400) alebo ignore (kľúč sa zahodí) pre filtre mimo allow-listu. |
mode.unknown_sort | string | reject | reject (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_values | int | 50 | Počet položiek (čiarka/pole) ponechaných v hodnote filtra; nadbytočné sa zahodia (ochrana pred DoS). Aspoň 1. |
limits.max_value_length | int | 255 | Počet znakov ponechaných v jednej hodnote filtra; dlhšie hodnoty sa skrátia. Aspoň 1. |
limits.max_sorts | int | 5 | Poč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 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.