Die Datenmodellierung in brandbox ermöglich die Erweiterung und Veränderung von existierenden Datenbanktabellen sowie die Definition von unabhängigen Eingabefeldstrukturen. 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.
...
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 | ||
---|---|---|
| ||
use Brandbox\Framework\Component\Modelling;
$id = 0; // ID des Formularmaskendatensatzes
$mask = $this
->staticController(Modelling\Manager::class)
->getMaskWidget($id)
; |
Abrufen einer Feldstruktur
Codeblock | ||
---|---|---|
| ||
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 |
---|---|
| Sammelt die verfügbaren Eingabefeldtypen für die Datenmodellierung ein. |
| Definiert den |
Versionshinweise
Info |
---|
brandbox 8.0 (framework 1.30.0)
|
Info |
---|
brandbox 10.0 (framework 3.0.0)
|
Info |
---|
brandbox 11.0 (framework 4.0.0)
|