Zum Inhalt springen

Relation Property fehlt - Abfrage von verbundenem Objekt scheitert

Erstellt am 19. Oktober 2016 · 1 Antwort · letzte Antwort am 25. Oktober 2016

Tags: TCA, Frage

schmidtpublic ·

Hallo,

ich arbeite mit einem Owner-Model, indem alle Adressdaten in 'Addresses' ausgelagert und über das Feld 'contact' verbunden sind.
Das klappt so weit bestens und bisher konnte ich im OwnersRepository über z.B.

$query->equals('contact.email', $email);

auch nach Daten aus dem zugehörigen Adressdatensatz suchen.

Allerdings scheitert das, seit ich Owners von FrontendUser (und das OwnersRepository vom FrontendUserRepository) ableite - was nötig war, weil der Owner eben auch FE-User sein soll...

Jetzt bekomme ich den Fehler
#1353170925: The relation information for property "contact" of class "Sp\Offertiles\Domain\Model\Owners" is missing.

Das Wiki sagt dazu:

[...] But to make queries like
$query->like("propertyXX.someproperty", '%foo%')
work, you still have to declare a 'foreign_table' in your TCA.

Hatte ich aber schon, foreign_table habe ich im Owners-TCA auf 'tx_[...]_domain_model_addresses'.

Natürlich habe ich im Owners-Model auch nix geändert, 'contact' ist vom Typ [...]\Domain\Model\Addresses

Habe keine Idee dazu & freue mich über einen Tipp!

+++++ Nachtrag: +++++
Wenn ich über das Repository mit findAll() abfrage, haben die FE_User alle ein

contact => Sp\...\Domain\Model\Addresses prototype persistent entity

Und natürlich sehe ich da auch alle Adressdaten.

Grüße vom Rhein, Stefan

froemken ·

Nur weil Dein Model jetzt von dem FrontendUser erbt, ist der Owner noch lange kein FrontendUser. Dein Owner bekommt einen ganzen Haufen mehr Eigenschaften, die alle einen TCA-Eintrag in Deiner Tabelle haben sollten. Wenn Dein Owner schon FrontendUser sein soll, dann biege die Tabelle, die für Owner zuständig ist, mittels TypoScript besser auf die Tabelle fe_user.

Oder noch besser: Setz Owner und FrontendUser mittels einer 1:1 Relation zusammen.