【问题标题】:symfony doctrine order bysymfony 学说命令
【发布时间】:2015-01-04 06:56:15
【问题描述】:

我正在尝试使用学说并采用有序的值,但我不能。

我试试看:

$articlesB = $this
                ->getDoctrine()
                ->getManager()
                ->getRepository('theBundle:Article')
                ->findAll(array('date' => 'ASC'));

你知道如何获取这些按日期排序的值吗?一列被命名为日期并取所有日期。我想要这个订购者。

谢谢 最好的问候

【问题讨论】:

    标签: php symfony doctrine-orm doctrine


    【解决方案1】:

    使用 findBy 而不是 findAll,第一个参数(选择标准)为空数组,第二个参数为您的排序数组。

    $articlesB = $this
                ->getDoctrine()
                ->getManager()
                ->getRepository('theBundle:Article')
                ->findBy(array(),array('date' => 'ASC'));
    

    在这种情况下,我查看了实际的源代码。您会认为 findAll() 会起作用,但不会。它永远不会通过排序标准。

    【讨论】:

    【解决方案2】:

    您需要在其中创建一个 ArticleRepostory:

    public function getOrderedArticles()
    {
        $return $this->getEntityManager()
                ->createQuery(
                "SELECT a FROM theBundle:Article a "
                . "ORDER BY a.date ASC"
        );
    }
    

    这样你的控制器就可以做

    $articlesB = $this
                    ->getDoctrine()
                    ->getManager()
                    ->getRepository('theBundle:Article')
                    ->getOrderedArticles();
    

    【讨论】:

    • 实际上,内置的存储库方法 findBy 可以处理排序以及限制/偏移,而无需任何额外的编码。
    • 这正是我所需要的,而且速度非常快!谢谢!
    猜你喜欢
    • 1970-01-01
    • 2012-06-11
    • 1970-01-01
    • 2020-06-27
    • 2016-03-31
    • 2018-06-22
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多