J'ai une erreur très étrange dans mon application Symfony et je ne sais pas comment y remédier. Je veux définir un DateTime
dans une de mes entités avec un DateTime
après avoir ajouté un DateInterval
spécial. Voici mon code:date_add obtient Boolean au lieu de DateTime
$dateInterval = new \DateInterval('P1DT6H');
$snoozedTo = date_add($sickNote->getSickTo(), $dateInterval);
$channelUser->setSnoozedTo($snoozedTo);
$this->em->persist($channelUser);
Dans mes UnitTests j'obtiens l'erreur suivante:
date_add() expects parameter 1 to be DateTime, boolean given
donc je double vérifier si $sickNote->getSickTo()
retourne vraiment un DateTime
. A dump()
rendements:
DateTime {#17791
+"date": "2018-01-01 06:00:00.000000"
+"timezone_type": 3
+"timezone": "UTC"
}
get_class()
sur l'objet retourne DateTime
.
Voici mon autre méthode getter pour le champ:
/**
* Get sickTo
* @return Date
*/
public function getSickTo() {
return $this->sickTo;
}
Pourquoi date_add
obtient un Boolean
et non l'objet DateTime
? J'ai également essayé la méthode d'objet DateTime::add()
. Même résultat
Edit²: Voici ma déclaration de sickTo
:
/**
* @var datetime $sickTo
* @ORM\Column(type="date", nullable=true)
* @Assert\Date()
*/
protected $sickTo;
Pouvez-vous montrer la déclaration de 'sickTo'? –
J'ai édité ma question pour ceci. – mgluesenkamp
si vous essayez '@var \ DateTime' et' type = "datetime" '? (ne pas oublier de mettre à jour votre db) –