Symfony -- 对 oneToMany 关系中的子记录进行排序

Posted

技术标签:

【中文标题】Symfony -- 对 oneToMany 关系中的子记录进行排序【英文标题】:Symfony -- Sort child records in oneToMany relation 【发布时间】:2014-03-04 06:12:00 【问题描述】:

我有这个实体路径条目。 我想在另一个字段上对实体列表 trplist 进行排序,但默认情况下,排序是在 id 上完成的。

我需要进行哪些配置更改?

单对多: 列表: 目标实体:TravelRoutePoints mappedBy: 路线 级联:[“坚持”,“删除”] 加入列: 姓名:身份证 引用的列名:tr_id

【问题讨论】:

【参考方案1】:

我猜你正在寻找 dosrine OrderBy 注释:

/**
 * @ManyToMany(targetEntity="Group")
 * @OrderBy("name" = "ASC")
 */
private $groups;

参见文档:http://docs.doctrine-project.org/en/latest/reference/annotations-reference.html#orderby

所以,你的 yaml 格式的关系应该是这样的:

oneToMany:
    trplist:
        targetEntity: TravelRoutePoints
        mappedBy: route
        cascade: ["persist", "remove"] 
        joinColumn: 
            name: id 
            referencedColumnName: tr_id
        orderBy:
            anotherFieldName: DESC

【讨论】:

我使用yml进行配置,order by there的语法是什么?

以上是关于Symfony -- 对 oneToMany 关系中的子记录进行排序的主要内容,如果未能解决你的问题,请参考以下文章

Symfony 5,Doctrine queryBuilder OneToMany 关系

Symfony 3 - Doctrine 2 - 在 oneToMany 关系上的 orderBy 不起作用

Doctrine symfony使用OneToMany删除实体 - ManyToOne关系

Symfony / Doctrine:OneToMany插入导致null id

Symfony2/Doctrine:如何使用 OneToMany 将实体重新保存为级联新行

与一个实体的多个 OneToMany 关系