Bonjour à tous,
J'ai un problème sur tous mes champs en DateTime avec le bundle knp-paginator-bundle.
J'ai créé une entité "Agenda" par la commande classique de Symfony make:entity, avec des champs en DateTime.
Exemple pour le champ dateDebut :
Je veux lister le contenu de ma table avec le bundle knplabs/knp-paginator-bundle.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #[ORM\Column(type: Types::DATETIME_MUTABLE)] private ?\DateTimeInterface $dateDebut = null; public function getId(): ?int { return $this->id; } public function getDateDebut(): ?\DateTimeInterface { return $this->dateDebut; } public function setDateDebut(\DateTimeInterface $dateDebut): self { $this->dateDebut = $dateDebut; return $this; }
Dans mon controller, j'ai :
A l'affichage de ma page, j'ai le message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 $agenda = $this->doctrine->getRepository(Agenda::class) ->createQueryBuilder('agenda'); $agenda->orderBy($sort, $direction) ->getQuery(); $pagination = $paginator->paginate( $agenda, $request->query->get('page', $page), 10 ); return $this->render('admin/admin_agenda_list.html.twig', array( 'pagination' => $pagination ));
Sur d'autres projets où mon entité ne contient que des champs en String, ça marche nickel.Object of class DateTime could not be converted to string
Mais là, avec mon entité Agenda, ça se banane sur mes champs en Datetime.
Je comprends le problème, getDateDebut renvoie un objet DateTime.
Dans mes tests, j'ai modifié getDateDebut comme suit :
Là, ma page de pagination s'affiche, mais toutes mes autres pages qui utilisent mon entité se plantent avec le message :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 public function getDateDebut(): String { return $this->dateDebut->format('Y-m-d H:i:s'); }
Mes recherches sur ce problème me ressortent que des vieux posts qui datent d'il y a des années, et je ne trouve pas de solution.Unable to transform value for property path "dateDebut": Expected a \DateTimeInterface
Vous avez des idées svp ?
Merci d'avance pour votre aide !
Partager