我有一个简单的问题,我只想按日期选择所有预订,我尝试使用ID或电子邮件等其他属性但效果不错但不是日期:
$reservations = $this->getDoctrine()->getManager()
->getRepository('LouvrePagesBundle:Reservation')->findByDateReservation($date);
我的变量$ date和我的表之间的日期格式完全相同,我真的需要帮助
答案 0 :(得分:0)
正如其他人和你自己的评论中所提到的,Doctrine期望一个datetime对象来搜索。一般来说,永远不要在代码中使用没有DateTime对象的日期或时间,在学会了如何处理它之后,您将享受到这个对象的舒适感。特别是当你必须处理时区问题时。
tl:dr解决方案是:
$repository->findByDateReservation(new DateTime($date));
顺便说一句,由于你的数据库图像:不要在数据库列名中使用大写。在配置文件中设置:
doctrine:
# ...
orm:
# ...
naming_strategy: doctrine.orm.naming_strategy.underscore
然后,dateReservation
等实体中的列名称将自动更改为date_reservation
。