Bug #195
offen[Bugsink] TYPO3\CMS\Extbase\Property\Exception: Exception while property mapping at property path "": Expected argument of type "TYPO3\CMS\Extbase\Persistence\…
0%
Beschreibung
Bugsink: https://bugsink.cytrus.de/issues/issue/059b50f2-adf8-416e-803e-0f3cc5fc46e8/event/last/
Typ: NEW issue
Projekt: www-verl-de
Bugsink Alert
TYPO3\CMS\Extbase\Property\Exception: Exception while property mapping at property path "": Expected argument of type "TYPO3\CMS\Extbase\Persistence\…
Automatisch erstellt durch n8n
KI-Analyse:
Analyse des Fehlers¶
1. Ursache identifizieren¶
Der Fehler liegt in der Domain Model-Klasse Citkomm\CitkoDirectory\Domain\Model\Eintrag. Die Methode setLogo() ist wie folgt typisiert:
public function setLogo(ObjectStorage $logo): void
Das Problem: Das Extbase Data Mapper versucht beim Hydratieren der Domain-Objekte (Typo3-Datensatz-zu-Objekt-Mapping über Symfony's PropertyAccessor) den Wert null in diese Methode zu schreiben. Das passiert, wenn ein Eintrag-Datensatz in der Datenbank existiert, dessen Logo-Feld leer/NULL ist (z. B. beim ersten Speichern ohne Logo-Auswahl, oder bei einem Datensatz der noch nicht vollständig befüllt wurde).
Da der Parameter $logo nicht als nullable (?ObjectStorage) deklariert ist, wirft PHP einen TypeError.
2. Fix (konkret)¶
Datei: EXT:citko_directory/Classes/Domain/Model/Eintrag.php
Änderung in der setLogo()-Methode:
// VORHER (fehlerhaft):
public function setLogo(ObjectStorage $logo): void
{
$this->logo = $logo;
}
// NACHHER (korrigiert):
public function setLogo(?ObjectStorage $logo): void
{
$this->logo = $logo;
}
Zusätzlich empfohlen: In getLogo() ebenfalls nullable machen, falls noch nicht geschehen:
public function getLogo(): ?ObjectStorage
{
return $this->logo;
}
Optional – Best Practice: Im Konstruktor eine leere ObjectStorage initialisieren, um NPEs beim Zugriff zu vermeiden:
public function __construct()
{
$this->logo = new ObjectStorage();
}
3. Betroffene TYPO3 Extension¶
Citkomm CitkoDirectory (citko_directory)
- Hersteller: Citkomm GmbH
- Typ: Verzeichnis-/Verzeichnis-Eintrag-Extension für TYPO3
- Die Domain-Klasse
Citkomm\CitkoDirectory\Domain\Model\Eintragist betroffen
4. Confidence¶
95%
- Der TypeError ist eindeutig und die Ursache ist klar: nicht-nullable
ObjectStorage-Type-Hint trifft aufnull-Wert beim Extbase-Mapping - Das Fix ist standardisiert und in der TYPO3-Community weit verbreitet
- Die einzige Unsicherheit betrifft randständige Fälle (z. B. ob noch andere Properties mit demselben Muster betroffen sein könnten), aber der Fehlertext benennt exakt
setLogo()
Nichts anzuzeigen