繁体   English   中英

使用Doctrine orderBy的Zendframework2根本不是“排序”

[英]Zendframework2 using Doctrine orderBy is not “ordering” at all

我真的是在一个点子上。 我只想用教义订购类别。 阅读了一点教义的文档后,我在控制器中使用了以下内容:

$categories = $em->getRepository('\Cbox\Entity\Category')->findBy(array('title' =>'news'), array('createdTime' => 'DESC'));

这两列都存在,也没有得到PHP / Doctrine / Mysql错误。 这是正确的方法吗? 我也尝试在我的实体中使用orderBy注释,但也没有成功:

/**
* @ORM\OneToMany(targetEntity="Cbox\Entity\Category", mappedBy="box")
* @ORM\OrderBy({"createdTime" = "DESC"})
*/
protected $category;

我也确实读过有关QueryBuilder和DQL的信息,但这似乎有点难以获得orderBy设置。

任何帮助将非常感激。 我也希望有足够的代码供你们使用。 但是我宁愿在这里显示“有问题的”部分,然后编写大量代码。

尝试这个

 $qb = $em->createQueryBuilder();
 $qb->select('u')
 ->from('Cbox\Entity\Category u')
 ->where('u.title = :title')
 ->orderBy('u.createdTime', 'DESC')
 ->setParameter('title', news);

现在,如果Cbox \\ Entity \\ Category\\ Cbox \\ Entity \\ Category是正确的实体,则它必须起作用。 这是另一种无需setParameter()即可执行相同操作的方法,但我不会推荐它。

  $qb->select('u')
 ->from('Cbox\Entity\Category u')
 ->where('u.title = news')
 ->orderBy('u.createdTime', 'DESC');

如果您想了解如何从$ qb中提取结果,我建议您点击此链接http://docs.doctrine-project.org/en/latest/reference/query-builder.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM