Hallo, ich bins mal wieder :-)
Ich habe diesmal eine Frage zu der Notation "@var mixed" im Model.
Und zwar habe ich ein Model mit einer Eigenschaft, die intern (also in der Datenbank) als kommaseparierter String gespeichert wird, nach außen hin aber als Array in Erscheinung treten soll. Ich habe das so gelöst, dass die Setter-Methode das übergebene Array in einen kommaseparierten String wandelt und die Getter-Methode aus dem String ein Array erstellt und dieses zurück gibt.
Die Werte, die in der Eigenschaft gespeichert werden sollen, kommen aus einer Multiple-Selectbox. D.h. beim Absenden des Formulars mit den gewählten Werten, übergibt Extbase das Array mit den Werten der Multiple-Selectbox an meine Setter-Methode, welche das Array in einen String wandelt. Das funktioniert aber nur, wenn ich die Eigenschaft im Model mit "@var array" definiere. Aber eigentlich ist das ja nicht ganz korrekt, denn wenn ich mir ein Objekt aus der Datenbank erstellen lassen, kommen die Werte aus der Datenbank ja als String, weshalb in diesem Fall "@var string" korrekt wäre. Da die Eigenschaft also je nach Betrachtung und Datenquelle ein Array oder ein String ist, wäre genau genommen die Definition "@var mixed" angebracht. So wie ich das sehe, sollte diese Notation auch von Extbase unterstützt werden, da z.B. die LazyObjectStorage-Klasse ebenfalls die Notation für ihre Eigenschaft "fieldValue" verwendet. Verwende ich diese Notation aber in MEINEM Model, erhalte ich folgende Fehlermeldung:
#1264093630: Found an invalid element type declaration in %s. A type "'mixed'" does not exist.
Was mache ich falsch bzw. wie löst man so ein Problem mit der Typ-Umwandling korrekt?
Hinweis: Ich nutze Typo3 6.2 Beta5