Doctrine ORM - 按关系的关系字段排序

时间:2021-07-19 07:38:29

标签: php doctrine-orm doctrine

我遇到了一个问题...我正在对一个集合进行循环,但我希望它按目标字段进行排序。

我正在循环播放的集合:

/**
 * @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;

0 个答案:

没有答案
相关问题