Versionen im Vergleich

Schlüssel

  • Diese Zeile wurde hinzugefügt.
  • Diese Zeile wurde entfernt.
  • Formatierung wurde geändert.

Die Datenmodellierung in brandbox ermöglich die Erweiterung und Veränderung von existierenden Datenbanktabellen sowie die Definition von unabhängigen Eingabefeldstrukturen. Sie erweitert und nutzt die Widgetstruktur von brandbox. Die Konfiguration der Datenmodellierung ist in die drei folgenden Datenbanktabellen verteilt:

  • Fomularmasken
  • Feldgruppen
  • Felder

Jede dieser Datenbanktabellen stellt eine Ebene der Datenmodellierung dar. Felder können optional in Feldgruppen struktutiert werden. Felder und Feldgruppen werden innerhalb einer Formularmaske organisiert. Die Struktur der Datenmodellierung wird im Cache von brandbox vorgehalten um nicht immer aus den Datenbanktabellen erstellt werden zu müssen. Um diesen Cache zu aktualisieren steht in den Toolbars der genannten Tabellen die Schaltfläche " Datenbankschema aktualisieren" zur Verfügung. Hierüber wird der bestehende Cache der Datenmodellierung bereinigt und aus den Datenbanktabellen neu aufgebaut.

Formularmasken

Eine Formularmaske wird genutzt um Feldgruppen und Felder zu organisieren und optional einer Tabelle zuzuordnen. Bei Zuordnung von einer oder mehreren Tabellen wird die in der Formularmaske geplegte Struktur mit den Strukturen der gewählten Tabellen vereint. Neue Feldgruppen und Felder werden den Tabellen hinzugefügt, bestehende Felder und Feldgruppen mit der Struktur aus den Formularmasken überschrieben bzw. erweitert. Felder welche direkt als Kinder einer Formularmaske zugewiesen sind, werden indirekt der Feldgruppe "Allgemein" zugewiesen.

Feldgruppen

Eine Feldgruppe wird genutzt um Felder in einer Gruppe zusammenzufassen. Feldgruppen werden bspw. auch von den bestehenden Datenbanktabellen von brandbox genutzt um die Eingabefelder eine Tabelle zu strukturieren. Die Datenmodellierung nutzt dieses System daher nur. Zusätzlich bietet die Datenmodellierung die Möglichkeit eine bereits exisitierende Feldgruppe einer Tabelle zu erweitern.

Felder

Felder repräsentieren Eingabefelder sowie ihrer spezifischen Konfiguration wie bspw. das Label, der Typ des Eingabefeldes, die Feldbeschreibung, etc. Hier besteht zudem die Möglichkeit ein bereits existierendes Eingabefeld einer Datenbanktabelle zu ersetzen. Hierbei nimmt das Feld aus der Datenmodellierung den Platz des Feldes aus der Tabellenstruktur ein. Die gesamte Konfiguration des Eingabefeldes wird dann aus der Datenmodellierung bezogen.

Programmatische Eingriffsmöglichkeiten

Die Datenmodellierung arbeitet mit einer öffentlichen und einer internen Datenstruktur. Die interne Datenstruktur darf niemals außerhalb der Datenmodellierung bzw. der internen Events der Datenmodellierung eingesetzt werden.
Info
Info

Bitte beachten Sie auch die Anwenderdokumentation

Eingabefeldtypen

Die in der Strukturmodellierung zur Verfügung stehenden Typen der Eingabefelder werden über das Event OnPopulateTypes eingesammelt. Es stehen derzeit fast alle Feldtypen welche von brandbox unterstützt werden zur Verfügung.

Programmatische Eingriffsmöglichkeiten

Info

Die Strukturmodellierung arbeitet mit einer öffentlichen und einer internen Datenstruktur. Die interne Datenstruktur darf niemals außerhalb der Strukturmodellierung bzw. der internen Events der Strukturmodellierung eingesetzt werden.

Abrufen einer Formularmaskenstruktur

Codeblock
languagephp
use Brandbox\Framework\Component\Modelling;

$id = 0; // ID des Formularmaskendatensatzes

$mask = $this
  ->staticController(Modelling\Manager::class)
  ->getMaskWidget($id)
;

Abrufen einer Feldstruktur

Codeblock
languagephp
use Brandbox\Framework\Component\Modelling;

$id = 0; // ID des Felddatensatzes
$identifier = 'ExampleIdentifier'; // Identifikator des Felddatensatzes

$column = $this
  ->staticController(Modelling\Manager::class)
  ->getColumnWidgetById($id)
;

// oder

$column = $this
  ->staticController(Modelling\Manager::class)
  ->getColumnWidgetByIdentifier($identifier)
;

Datenbankentitäten mit Strukturmodellierung ausstatten

Datenbankentitäten können mithilfe des Interfaces \Brandbox\Framework\Brandbox\Modelling\Lib\Definition\ModellingEntityInterface sowie dem Trait \Brandbox\Framework\Brandbox\Modelling\Lib\Definition\ModellingEntityTrait um die Strukturmodellierung erweitert werden. Dabei wird ähnlich zu Brandbox/Odm eine Tabellenspalte für die dynamischen Informationen ergänzt.

Eingabefeldkonfigurationen

Mithilfe des Events OnPopulateConfiguration und den Strukturdefinitionen können Eingabefelder, welche in der Strukturmodellierung zur Auswahl stehen, mit einer optionalen Konfigurationsdefinition ausgestattet werden. Hierfür muss lediglich das OnPopulateConfiguration-Event mit dem abstrakten Listener PopulateConfigurationAbstract imeplementiert und eine Strukturdefinition im Basispfad des entsprechenden Codepakets abgelegt werden.

Events

Klassenname

Beschreibung

OnPopulateTypes

Sammelt die verfügbaren Eingabefeldtypen für die Datenmodellierung ein.

OnPopulateConfiguration

Definiert den FormBuilderStandard für die Eingabefeldkonfiguration, welche zusätzlich in der Datensatzbearbeitung einer ModellingColumn angezeigt wird. Die Klasse PopulateConfigurationAbstract kann als Basisklasse für einen Listener genutzt werden.

Versionshinweise

Info

brandbox 8.0 (framework 1.30.0)

  • Eingabefelder können mit einer optionalen Konfiguration ausgestattet werden

Info

brandbox 10.0 (framework 3.0.0)

  • Die Kennzeichen aus den modellingColumnIs*-Spalten wurden in das Array flags migriert. Die Pflege der Kennzeichnen findet über Component/Variant mit dem Target ModellingColumnFlag statt.

Info

brandbox 11.0 (framework 4.0.0)

  • Die abstrakten Strukturmodellierungsentitäten wurden durch ein Interface und ein Trait ersetzt