...
Um nun individuelle Eigenschaften in bestehenden Entities zu ergänzen, auf die man keinen direkten Zugriff hat, ist es nötig en ein Entity zu erstellen, welches das zu ursprüngliche Entity erweitert. Folgend die Beispieldateien:
...
Beispiel
Beispiel (shopArticle.php), um shopArticle zu erweitern
Codeblock | ||
---|---|---|
| ||
<?php declare(strict_types=1); namespace Brandbox\Dev\Example\DbalExtend\Lib\Extend { use DoctrineSymfony\Component\ORMValidator\MappingConstraints; class shopArticleuse Doctrine\ORM\Mapping; class shopArticle { { /** * @Mapping#[Mapping\Column(name=": 'shop_article_example"', type="string": 'string', nullable=: false, length=: 255, options={"default": ""}) * * @constraint NotBlank() * @constraint NotHtml() * @constraint Length(max=255) */ : ['default': '']] #[Constraints\NotBlank, Constraints\NotHtml, Constraints\Length(max: 255)] public string $shopArticleExample = ''; } } |
Info | |
---|---|
title | WichtigAchten Sie auf den Namespace |
Codeblock | |
language | js |
Beispiel (modelling.json), um die Eigenschaft zu beschreiben
Codeblock | ||
---|---|---|
| ||
{ "type": "modelling", "repositories": [ { "identifier": "shopArticle", "order": [ "general", "shopArticleExample" ], "groups": [ { "identifier": "general", "sets": [ { "identifier": "general", "order": [ "shopArticleName", "ShopArticleExample" ], "columns": [ { "type": "Input", "identifier": "ShopArticleExample", "label": { "de": "Beispiel", "en": "Example" }, "flags": ["result"], "constraint": [ "NotBlank()" ] } ] } ] } ] } ] } |
Umgang mit übersetzbaren Eigenschaften
Soll eine ergänzte Eigenschaft auch übersetzbar sein, muss die entsprechende Translation-Entity ebenfalls erweitert werden.
Erstellen Sie in diesem Fall für das Translation-Entity ebenfalls ein Extend-Entity. Zusätzlich ergänzen Sie bitte das flag "translatable" bei der entsprechenden Eigenschaft in der modelling.json:
Auszug (modelling.json), um die Eigenschaft als übersetzbar zu markieren
Codeblock | ||
---|---|---|
| ||
"flags": ["result", "translatable"] |
Achtung: ist für eine Entity keine Translation-Entity definiert, kann diese auch nicht erweitert werden.
Composer
Nach jeder Änderung an den Entity-Klassen
...
ist es notwendig, mit Composer brandbox
...
erneut zu installieren:
Composer-Update
Codeblock | ||||
---|---|---|---|---|
| ||||
php composer.phar install php composer.phar update |
...