我遇到了一个问题...我正在对一个集合进行循环,但我希望它按目标字段进行排序。
我正在循环播放的集合:
/**
* @ORM\OneToMany(targetEntity=CompoEtapeScenarioCahierCampagne::class, mappedBy="compoScenarioCahierCampagne", cascade={"remove"})
*/
private $compoEtapeScenarioCahierCampagnes;
“etape”是一个 CompoEtapeScenarioCahierCampagne 字段:
/**
* @ORM\ManyToOne(targetEntity=Etape::class, inversedBy="compoEtapeScenarioCahierCampagnes")
* @ORM\JoinColumn(nullable=false)
*/
private $etape;
"ordre" 是一个 Etape 字段:
/**
* @ORM\Column(type="integer")
*/
private $ordre;
所以当我在 $compoEtapeScenarioCahierCampagnes 上循环时,我希望它们由 $etape.ordre
订购无论如何我能做到吗?问题是我无法进行查询,因为我的循环已经在另一个循环中,依此类推。
编辑:
循环看起来像这样:
{% for etpScnCdrCmp in entity.compoEtapeScenarioCahierCampagnes %}
{# etpScnCdrCmp is basically $compoEtapeScenarioCahierCampagne #}
{# But I want those to be orderedBy etpScnCdrCmp.etape.ordre #}
{% endfor %}
编辑 2 以获得更多解释:
我想在 $compoEtapeScenarioCahierCampagnes 上循环,就好像这个 ORM 注释可以工作一样(其中 ordre 是 Etape 的字段):
/**
* @ORM\OneToMany(targetEntity=CompoEtapeScenarioCahierCampagne::class, mappedBy="compoScenarioCahierCampagne", cascade={"remove"})
* @ORM\OrderBy({"etape.ordre" = "ASC"})
*/
private $compoEtapeScenarioCahierCampagnes;