我真的处在一个我缺乏想法的地方。我只想用Doctrine订购类别。在我的控制器中使用以下内容之后,我将使用以下内容:
$categories = $em->getRepository('\Cbox\Entity\Category')->findBy(array('title' =>'news'), array('createdTime' => 'DESC'));
两个列都存在,我也没有得到PHP / Doctrine / Mysql错误。这是正确的方法吗?我也尝试在我的实体中使用orderBy Annotations也没有成功:
/**
* @ORM\OneToMany(targetEntity="Cbox\Entity\Category", mappedBy="box")
* @ORM\OrderBy({"createdTime" = "DESC"})
*/
protected $category;
我也读过有关QueryBuilder和DQL的内容,但这似乎只是为了获得orderBy设置的一点点技巧。
非常感谢任何帮助。我也希望有足够的代码供你们拍照。但我宁愿在这里显示“问题”部分,然后是大量的代码。
答案 0 :(得分:1)
试试这个
$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