Php 核心原则::getTable()->;findAll()如何指定顺序?

Php 核心原则::getTable()->;findAll()如何指定顺序?,php,symfony1,doctrine,Php,Symfony1,Doctrine,使用doctor\u表对象时,是否可以在使用findAll()或findByWhatever()时指定返回集合的顺序 在中,我看到了一些关于getOrderByStatement()和processOrderBy()的内容,但不清楚如何使用它们…根据Jon Wage的说法,在这种情况下,您应该创建一个查询…可以在中找到,您实际上可以在模式中指定默认的order by: Foo: columns: ... options: orderBy: bar DESC 请注意,当您

使用
doctor\u表
对象时,是否可以在使用
findAll()
findByWhatever()时指定返回集合的顺序


在中,我看到了一些关于
getOrderByStatement()
processOrderBy()
的内容,但不清楚如何使用它们…

根据Jon Wage的说法,在这种情况下,您应该创建一个查询…可以在中找到,您实际上可以在模式中指定默认的order by:

Foo:
  columns:
    ...
  options:
    orderBy: bar DESC

请注意,当您想要指定不同的顺序时,您仍然可以创建一个查询并覆盖默认顺序。

在我的例子中,问题是我有这样一个语句

$destinos  = $em->getRepository('BackendDestinyBundle:Destiny')->findAll();
最后我把它改成了CreateQuery语句,它的功能完全相同,但我可以用OrderBy语句

$destinos  = $em->createQuery("SELECT d FROM BackendDestinyBundle:Destiny d order by d.name")->getResult();

也可以将第一个数组留空

  $em->getRepository('BackendDestinyBundle:Destiny')->findBy(array(), array('title'=>'asc'));

是的,我想这可能是唯一的解决办法,只是我不确定。谢谢,我不知道。这很有帮助。谢谢你,这不是只针对关系吗?不,它也适用于模型,但实际上你也可以在关系上使用这个技巧。这不是一个好主意。Orderbys可能很昂贵,并且您不想为每个查询都发布它们。您在这里讨论的是原则2,顺便说一下,这不是使用原则的好方法。应该在不编写sql代码的情况下生成查询。。。你正在失去ORM的所有优势…事实上,他在这里使用ORM非常好,因为它是DQL,而不是SQL。好吧,我的错,请不要哭,只是想帮我谢谢你。这就是我想要的。快速、简单且有效。这实际上比查询生成器(在我看来)要好,毕竟
findAll()
的实现是这样的调用
findBy(array())
谢谢!我刚才使用了:
公共函数findAll(){return$this->findBy(array(),array('name'=>'ASC'));}
快速覆盖为实体的表单返回返回返回的findAll顺序。