User Attribute mit neuem Model / Entity verknüpfen

Hallo,

Ich habe ein  neues Model / Entity “Business Unit” angelegt. Dieses müsste ich nun an den Customer (s_user) über die Attribute hängen. Dazu habe ich folgendes Attribut zum User hinzugefügt:

        $attributeService->update('s_user_attributes', 'business_unit', 'single_selection', [
                'entity' => BusinessUnit::class,
                'label' => 'Business unit',
                'supportText' => 'The business unit this customer belongs to',
                'displayInBackend' => true,
                'position' => 530
            ]
        );

Klappt nur leider nicht. Sobald ich ein Objekt “Business Unit” dem Kunden zuweisen möchte, erwartet das Customer Model einen String statt eines Objekts:

$businessUnit = $this->modelManager->getRepository(BusinessUnit::class)->find($accessCode->getBusinessUnit());
$customer->getAttribute()->setBusinessUnit($businessUnit);

Exception:

Object of class PhaBase\Models\BusinessUnit could not be converted to string

Hat jemand einen Tipp für mich, was ich hier bei der Anlage des Attributs falsch mache?

Danke & Liebe Grüße

Lösung: Ein “echtes” OR-Mapping zwischen Attributen und Entities ist derzeit nicht möglich. Bei ManyToOne Relationen wird die ID der Referenzentity im Attribut gespeichert und bei einem get auch nur die ID und nicht das zugehörige Objekt geliefert.

Bei ManyToMany Beziehungen werden die ID´s als serialisierter String (5|4|8…) im Attribut gespeichert. Auch hier müssen die Objekte manuell erzeugt werden.