2: Schemas en velden

Een model verklaart zijn structuur met een schema: een kaart van kolomnamen naar een field(...) van een bepaald type. De CMS leest het schema om invoervelden, lijstkolommen, validatie en de API te bouwen.
static schema => arr (
id: field (type: 'number', title: 'ID', list: false, record: false),
title: field (type: 'text', title: 'Title', length: 160, required: true),
body: field (type: 'wysiwyg', title: 'Body', list: false),
created: field (type: 'datetime', title: 'Published'),
)2.1: Veldtypes
| Type | Opslaan / weergeven |
|---|---|
text |
een string (zet multiline: true voor een textarea) |
email, password, number, date, datetime |
getypte invoer |
bool |
een checkbox |
select, multiselect |
een vaste optieslijst |
wysiwyg |
rijke tekst |
token |
een gegenereerde id |
image, file |
een upload (zie het hoofdstuk Uploads) |
parent, child, many |
relaties (zie het hoofdstuk Relaties) |
virtual |
een berekende, niet-opgeslagen waarde |
2.2: Veelvoorkomende veldopties
title: het label dat in de admin wordt weergegeven.required: true: gevalideerd bij schrijven.list: false/record: false: verberg het veld in de lijst- of recordweergave.length,default,placeholder,options: extra's per type.
Het id-veld is conventioneel verborgen in zowel de lijst als het record, aangezien de database het toekent.
2.3: De field() helper
field(type: 'x', ...) is een afkorting: het lost op naar de field_x resource met jouw argumenten. Het laden van een veldtype is gewoon het vermelden van fields/x in je resources, zodat een app alleen de veldtypes verzendt die het daadwerkelijk gebruikt.