2015-11-08 65 views
0

我有下面的代碼,但是這是行不通的:方法findBy()來自主義與日期時間

$event= $this->getDoctrine() 
     ->getRepository('AppBundle:Event') 
     ->findBy(
      array(
       "datestart" => array(new \DateTime()) 
      ) 
     ); 

我需要的事件,這是新的,然後現在的名單。

我的錯誤在哪裏?

或者是不是能夠獲得默認的學說findBy()函數?

回答

4

findBy只搜索完全匹配,而您需要更大的匹配。在這種情況下以及許多其他情況下,您可以編寫自己的查詢。你可以使用DQL或queryBuilder。如果您希望能夠在其他地方重複使用您的查詢,那麼您可以將您的查詢放入存儲庫類中,這也是一個很好的做法。 (check the docs)。現在在這裏你會發現一個DQL的例子,你可以放入您的控制器:

$events = $this->getDoctrine() 
     ->getManager() 
     ->createQuery('SELECT e FROM AppBundle:Event e WHERE e.datestart > CURRENT_DATE()') 
     ->getResult(); 

我改變你的variabele至$事件(與S),因爲你是一個以上的事件預期可能。