Projekt

Allgemein

Profil

Aktionen

Bug #153

offen

[Bugsink] Exception: Cytrus\CytEventcalendar\Domain\Model\Instance::setStartDate(): Argument #1 ($startDate) must be of type DateTime, false given, called in /…

Von Bug Sink vor etwa 2 Monaten hinzugefügt.

Status:
Neu
Priorität:
wichtig
Zugewiesen an:
-
Beginn:
03.09.2026
Abgabedatum:
% erledigt:

0%

Geschätzter Aufwand:

Beschreibung

Bugsink: https://bugsink.cytrus.de/issues/issue/0b94c8c0-8e1e-440f-a883-0a277c4e63f5/event/last/

Typ: NEW issue

Projekt: www-rietberg-de

Bugsink Alert

Exception: Cytrus\CytEventcalendar\Domain\Model\Instance::setStartDate(): Argument #1 ($startDate) must be of type DateTime, false given, called in /…


Automatisch erstellt durch n8n

KI-Analyse:

1. Ursache identifizieren

Der Fehler entsteht, weil SuggestionController.php (Zeile 152) dem Methodenaufruf $instance->setStartDate() den Wert false übergibt, obwohl der Parameter typsicher als DateTime deklariert ist.

Konkrete Ursache: Ein Wert aus der Datenbank bzw. einer Datenquelle (vermutlich ein Datumsfeld aus einem Repository-Fetch) ist false statt eines gültigen DateTime-Werts. Typische Szenarien:

  • Ein Datumsfeld in der Datenbank ist NULL/leer, und der Extbase-Mapper oder ein manueller Lesezugriff liefert false statt eines defaults.
  • Die Datumsfeld-Zuordnung im Repository oder in der Domain Model-Mapierung schlägt fehl (z.B. Feldname stimmt nicht überein, Format-Konvertierung fehlt).
  • Ein DateTime::createFromFormat() oder ähnlicher Aufruf gibt false zurück, ohne abgefangen zu werden.
  • Das Modell-Property ist nicht korrekt mit dem Datenbankfeld verknüpft (z.B. fehlende @var-Annotation oder fehlende TCA-Configureierung), sodass Extbase den Rohwert false direkt durchreicht.

2. Fix beschreiben (konkret)

Short-term (Schnellfix) in SuggestionController.php Zeile ~152:

// Statt:
$instance->setStartDate($rawDateValue);

// Dann:
if ($rawDateValue === false || $rawDateValue === null) {
    $rawDateValue = new DateTime(); // oder DateTimeImmutable, oder einen Default-Wert verwenden
}
$instance->setStartDate($rawDateValue);

Besser (Root-Cause-Fix) im Instance Domain Model oder Repository:

  • Sicherstellen, dass der Datumswert immer vor Übergabe an setStartDate() in einen DateTime-Object konvertiert wird.
  • Im Domain Model Instance ggf. setStartDate(?DateTime $startDate = null) erlauben und einen Default setzen.
  • Im Repository sicherstellen, dass Datumsfelder korrekt per DateTime-Mapper verarbeitet werden (z.B. über $dateTimeStorage oder korrekte TCA eval-Config wie datetime).

Empfohlener dauerhafter Fix:

// Im Repository oder DataMapper, wo das Datum extrahiert wird:
$startDate = !empty($row['start_date']) 
    ? new DateTime($row['start_date']) 
    : new DateTime(); // Fallback
$instance->setStartDate($startDate);

3. Betroffene TYPO3 Extension

Cytrus\CytEventcalendar (Cyt Eventcalendar, Provider: Cytrus)

4. Confidence

90%

Die Diagnose ist sehr hochgradig sicher: Die Fehlermeldung ist eindeutig (false given bei DateTime-Erwartung), die Extension und die betroffene Datei/Metode sind exakt benannt. Die einzige Unsicherheit betrifft die exakte Quelle des false-Werts im Datenfluss (ob Repository, TCA-Mapping oder Datenbankfeld-Problem), was eine kleinere Detailfrage ist.

Nichts anzuzeigen

Aktionen

Auch abrufbar als: Atom PDF