Ich habe einen sehr seltsamen Fehler in meiner Symfony App und ich weiß nicht, wie ich es beheben kann. Ich möchte eine DateTime
in einer meiner Entitäten mit einer DateTime
nach dem Hinzufügen einer speziellen DateInterval
setzen. Hier ist mein Code:date_add wird statt DateTime Boolean
$dateInterval = new \DateInterval('P1DT6H');
$snoozedTo = date_add($sickNote->getSickTo(), $dateInterval);
$channelUser->setSnoozedTo($snoozedTo);
$this->em->persist($channelUser);
In meiner Unittests bekomme ich folgende Fehlermeldung:
date_add() expects parameter 1 to be DateTime, boolean given
So verdoppeln ich überprüfen, ob $sickNote->getSickTo()
wirklich eine DateTime
zurückgibt. Ein dump()
kehrt:
DateTime {#17791
+"date": "2018-01-01 06:00:00.000000"
+"timezone_type": 3
+"timezone": "UTC"
}
get_class()
auf dem Objekt zurückgibt DateTime
.
Hier ist zusätzlich meine Getter-Methode für das Feld:
/**
* Get sickTo
* @return Date
*/
public function getSickTo() {
return $this->sickTo;
}
Warum date_add
ein Boolean
bekommt und nicht das DateTime
Objekt?
Bearbeiten: Ich habe auch versucht, die Objet-Methode DateTime::add()
. Gleiches Ergebnis.
Edit²: Hier ist meine Erklärung von sickTo
:
/**
* @var datetime $sickTo
* @ORM\Column(type="date", nullable=true)
* @Assert\Date()
*/
protected $sickTo;
Können Sie die Erklärung von 'sickTo' zeigen? –
Ich habe meine Frage dazu bearbeitet. – mgluesenkamp
wenn Sie '@var \ DateTime' und' type = "datetime" 'versuchen? (Vergessen Sie nicht, Ihre Datenbank zu aktualisieren) –