/

Ihr erstes individuelles Feld definieren

Ein fokussierter Durchgang durch ein einzelnes Feld: seinen Typ ändern, seine Eingabe validieren und es dann für die Bearbeitung sperren.

1. Den Typ ändern

Beginnen Sie mit ->change_type($field, $type, $length = '', $extra = []), um festzulegen, wie das Feld im Formular gerendert wird:

$xcrud->change_type('email', 'text');

Die vollständige Liste verfügbarer Typen finden Sie unter Feldtypen im Überblick.

2. Seinen Wert validieren

->validation_pattern($field, $pattern) verlangt, dass der (nicht-leere) Wert eines Feldes im Hinzufügen-/Bearbeiten-Formular einem Regex entspricht, durchgesetzt sowohl client- als auch serverseitig. $pattern ist entweder eine der folgenden benannten Abkürzungen oder ein wörtlicher Regex-Körper ohne Begrenzungszeichen:

$xcrud->validation_pattern('email', 'email');
AbkürzungEntspricht
emailEiner einfachen user@host-Form
alphaNur Buchstaben
alpha_numericBuchstaben und Ziffern
alpha_dashBuchstaben, Ziffern, Unterstrich, Bindestrich
numericEine Ganzzahl oder Dezimalzahl, optional negativ
naturalNur Ziffern (eine nicht-negative Ganzzahl)
urlEine http://- oder https://-URL

Für alles andere übergeben Sie einen wörtlichen Regex-Körper (keine Schrägstriche, keine Flags):

$xcrud->validation_pattern('sku', '^[A-Z]{2}-\d{4}$');

Ein leeres Feld besteht eine Muster-Prüfung für sich genommen - kombinieren Sie sie mit ->validation_required(), um auch das Leerlassen zu verbieten. Die vollständige Beschreibung von required/pattern finden Sie unter Feldvalidierung.

3. Anzeigen, aber Bearbeitung blockieren

->readonly($field) und ->disabled($field) zeigen beide ein Feld im Formular an, verhindern aber, dass der Besucher es ändert - der Unterschied ist rein kosmetisch (ein readonly-gestyltes Eingabefeld gegenüber einem ausgegrauten, deaktivierten Steuerelement). Keines von beiden ist eine serverseitige Sicherheitskontrolle: Sie ändern nur, was der Browser einen Besucher anklicken lässt, nicht, was die API akzeptiert.

$xcrud->readonly('accountNumber');

Ein Besucher, der die REST-API direkt aufruft und dabei das Formular komplett umgeht, wird durch readonly()/disabled() überhaupt nicht aufgehalten. Die eigentliche Sicherheitsgrenze ist, von vornherein zu whitelisten, welche Spalten bearbeitbar sind - siehe Sicherheit: Tabellen & Spalten sperren.

Alles zusammen

$xcrud = Xcrud::get_instance();
$xcrud->table('customers');
$xcrud->route('customers');

$xcrud->change_type('email', 'text');
$xcrud->validation_pattern('email', 'email');
$xcrud->readonly('accountNumber');

$xcrud->render();