我有以下代码,但这不起作用:
$event= $this->getDoctrine()
->getRepository('AppBundle:Event')
->findBy(
array(
"datestart" => array(new \DateTime())
)
);
我需要一个事件列表,这些事件现在比较新。
我的错误在哪里?
或者是不是能够使用doctrine的默认findBy()函数?
答案 0 :(得分:9)
findBy只搜索完全匹配,而你需要更大的匹配。在这种情况下以及许多其他情况下,您可以编写自己的查询。您可以使用DQL或queryBuilder。如果您希望能够在其他地方重用查询,那么您可以将查询放在存储库类中,这也是一个很好的做法。 (check the docs)。现在,您可以找到可以放入控制器的DQL示例:
$events = $this->getDoctrine()
->getManager()
->createQuery('SELECT e FROM AppBundle:Event e WHERE e.datestart > CURRENT_DATE()')
->getResult();
我将你的varbele改为$ events(用s),因为你期待可能有多个事件。