Schema
Schema
Schema je uspořádané pole komponent předané do ->schema([...]). Je to sdílený slovník pro uspořádání obsahu a stejné komponenty se vykreslují napříč surface — formuláře, infolisty i action modaly konzumují schema.
Na této stránce
Schema je uspořádané pole komponent předané do ->schema([...]). Je to
sdílený slovník pro uspořádání obsahu a stejné komponenty se vykreslují
napříč surface — formuláře, infolisty i action modaly konzumují schema.
use NyonCode\WireCore\Foundation\Schema\Grid;use NyonCode\WireCore\Foundation\Schema\Section; Section::make('profile') ->label('Profile') ->schema([ Grid::make()->columns(2)->schema([ TextInput::make('first_name'), TextInput::make('last_name'), ]), ])
Jak to funguje
Schema je strom komponent. Ten strom tvoří dva druhy:
- Pole nesou hodnotu a state path —
TextInput,Select,Toggle, … Váží se na váš model/stav a účastní se validace. Viz reference Formuláře → Pole. - Layoutové a schema komponenty nenesou vlastní stav; uspořádávají své
potomky.
Grid,Section,Tabs,Wizarda spol. každá bere svou vlastní->schema([...]), takže se layouty vnořují libovolně hluboko.
Při renderu hostitel prochází strom do hloubky: každá komponenta vyresolvuje svou vlastní konfiguraci (labely, viditelnost, sloupce) a vykreslí svůj Blade pohled, rekurzivně do dětských schémat. Protože layoutové komponenty nedrží hodnotu, lze je přidávat, odebírat nebo přeřazovat volně bez zásahu do vašich dat — na stav se mapují jen pole.
Všechny schema komponenty žijí pod NyonCode\WireCore\Foundation\Schema a rozšiřují
sdílený základ LayoutComponent, což je důvod, proč identický Grid nebo Section
funguje ve formuláři, infolistu i modalu.
Rozpětí sloupců
Jakýkoli potomek layoutu založeného na sloupcích (Grid, Section, Fieldset, Tab, Step)
řídí svou vlastní šířku:
TextInput::make('bio')->columnSpan(2); // rozpětí dvou sloupcůTextInput::make('notes')->columnSpanFull(); // rozpětí celého řádku
Layoutové komponenty
| Komponenta | Účel |
|---|---|
| Grid | Responzivní vícesloupcový layout |
| Flex | Uspořádat potomky na jedné vodorovné (flexbox) ose |
| Section | Seskupit komponenty pod nadpisem, volitelně sbalitelné |
| Fieldset | Seskupit související komponenty s ohraničenou legendou |
| Tabs | Client-side záložkové panely (všechny panely validují společně) |
| Wizard | Client-side vícekrokový layout s indikátorem kroků |
Prime komponenty
Statické, ne-vstupní komponenty, které zobrazují obsah:
| Komponenta | Účel |
|---|---|
| Callout | Jemný, barevný upozorňovací box s nadpisem a ikonou |
| Empty State | Vycentrovaný placeholder zobrazený, když není co zobrazit |
Kde se schémata používají
Protože tyto komponenty žijí v core Foundation\Schema, konzumuje je víc
než jen formuláře:
- Formuláře staví své tělo ze schématu.
Grid,SectionaFieldsetmají také tenké aliasyNyonCode\WireForms\Components\Layout\*(deprecated ve v2.0), které jen vymění form-specifický markup; každá další schema komponenta se používá přímo. - Infolisty znovupoužívají stejný layout slovník pro read-only detailní pohledy.
- Action modaly používají Wizard pro vícekrokové toky — viz Modaly → Vícekrokový wizard.