【问题标题】:Method findBy() from Doctrine with DateTime来自 Doctrine 的方法 findBy() 与 DateTime
【发布时间】:2015-11-08 01:57:01
【问题描述】:

我有以下代码,但这不起作用:

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

我需要一份当时更新的事件列表。

我的错误在哪里?

或者说是不是可以通过默认的学说的 findBy() 函数得到?

【问题讨论】:

    标签: symfony doctrine-orm


    【解决方案1】:

    findBy 仅在您需要更大时搜索完全匹配。在这种情况下以及许多其他情况下,您可以编写自己的查询。您可以使用 DQL 或 queryBuilder。如果您希望能够在其他地方重复使用您的查询,那么您可以将您的查询放在存储库类中,这也是一个很好的做法。 (check the docs)。现在在这里您可以找到一个可以放入控制器的 DQL 示例:

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

    我将您的变量更改为 $events(带 s),因为您期望可能发生多个事件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-11-14
      • 2012-03-21
      • 1970-01-01
      • 1970-01-01
      • 2011-02-12
      • 2019-01-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多