Symfony 注释@OrderBy

Symfony 注释@OrderBy,symfony,doctrine-orm,doctrine,symfony-2.3,Symfony,Doctrine Orm,Doctrine,Symfony 2.3,我正在尝试按多人批注自动排序报告的结果@OrderBy: /** * @ORM\ManyToMany(targetEntity="Artist", inversedBy="soundtrack", cascade={"persist", "remove"}) * @ORM\JoinTable(name="soundtrack_artist") * @OrderBy({"name" = "ASC", "surname" = "ASC"}) **/ private $artists; 但它

我正在尝试按多人批注自动排序报告的结果
@OrderBy

/**
 * @ORM\ManyToMany(targetEntity="Artist", inversedBy="soundtrack", cascade={"persist", "remove"})
 * @ORM\JoinTable(name="soundtrack_artist")
 * @OrderBy({"name" = "ASC", "surname" = "ASC"})
 **/
private $artists;
但它给了我一个错误:

[Semantical Error] The annotation "@OrderBy" in property
Acme\UserBundle\Entity\Soundtrack::$artists was never imported.
Did you maybe forget to add a "use" statement for this annotation?
我还试图补充:

use Doctrine\ORM\Mapping\OrderBy;
但错误依然存在!
我做错了什么?

不确定你是否找到了答案,但这对我很有用:

@ORM\OrderBy


@ORM\OrderBy
解决所有问题,在symfony注释中插入方法的作用域非常重要。

如果包含此命名空间:

use Doctrine\ORM\Mapping as ORM;
此注释将起作用:

@ORM\OrderBy({"date" = "ASC"})
第一个键应该是类的映射属性。订单应为ASC或DESC


请参阅官方文档:

别忘了清除缓存!谢谢你们!我有时会在一杯水里迷失自我!伙计们,这不管用!继续按id对它们进行排序:
公共函数getArtistsAction(){$artists=$this->getDoctrine()->getRepository('BasisumiUraUserBundle:Artist')->findAll();foreach($a)foreach($artists as$a){var_dump($a->getId();}die;return array('artists'=>$artists);}
返回:int(1)int(2) ... 我删除了缓存,但似乎不起作用尝试
Doctrine\Common\Util\Debug::dump($a)
并查看您的
name
变量,然后查看
姓氏
。也许它们是按顺序排列的,但是很难说当你打印
id
时我解决了相同的问题,删除了空格,你有@ORM\OrderBy({“name”=“ASC”})我改成了@ORM\OrderBy({“name”=“ASC”}),删除了单词之间的空格,这为我解决了问题。