Bonjour à tous
J'ai créé un nouveau projet en version 7.1 et ai voulu utiliser les traits 'created_at' et updated_at comme je l'ai fait dans beaucoup d'autres projets en version antérieur (ce qui marchait parfaitement) or là, j'obtiens l'erreur :
"Expected argument of type "DateTimeImmutable", "null" given at property path "created_at"." sans aucune explication, en effet, j'ai bien renseigné le constructor dans chaque entité, j'ai installé les extensions doctrine, rien n'y fait... Je pense qu'il y a dû avoir un changement depuis la version 7 puisque je n'ai aucun problème avec les projets plus anciens :
public function __construct()
{
$this->created_at = new \DateTimeImmutable();
$this->updated_at = new \DateTimeImmutable();
}
J'ai aussi renseigné :
``` #[ORM\HasLifecycleCallbacks]
```
Trait createdAt :
```
<?php
namespace App\Entity\Trait;
use Doctrine\ORM\Mapping as ORM;
trait CreatedAtTrait
{
#[ORM\Column(type: 'datetime_immutable', options: ['default' => 'CURRENT_TIMESTAMP'])]
private $created_at;
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->created_at;
}
public function setCreatedAt(\DateTimeImmutable $created_at): self
{
$this->created_at = $created_at;
return $this;
}
}
Dans mon formulaire j'ai mis :
->add('created_at', DateTimeType::class, [
'widget' => 'single_text', 'label' => 'Créée le','required'=>false,
'attr' => ['class' => 'muted', 'disabled' => true]
```