简单请求findBy(date)原则不起作用


Simple request findBy(date) doctrine not working

我有一个简单的问题,我只是想按日期选择我所有的预订,我尝试了其他属性,如ID或电子邮件,它工作得很好,但不是日期:

$reservations = $this->getDoctrine()->getManager()
->getRepository('LouvrePagesBundle:Reservation')->findByDateReservation($date);

变量$date和表的日期格式是完全一样的,我真的需要帮助

DataTable截图

正如其他人和您自己在评论中已经提到的,Doctrine期望搜索一个datetime对象。一般来说,不要在代码中不带DateTime对象的情况下使用日期或时间,在您学会如何处理它之后,您将享受到这个对象的舒适。尤其是当你必须处理时区问题的时候。

tl:dr解决方案是:

$repository->findByDateReservation(new DateTime($date));

顺便说一下,因为你的数据库形象:不要在数据库列名称中使用大写字母。在你的配置文件中设置:

doctrine:
    # ...
    orm:
        # ...
        naming_strategy: doctrine.orm.naming_strategy.underscore

dateReservation等实体中的列名将自动更改为date_reservation