繁体   English   中英

Symfony / Doctrine ManyToMany按指定顺序排列

[英]Symfony/Doctrine ManyToMany in the order the are assigned

我有一个名为Game的实体,它有一个与一个名为Question的实体的JoinTableManyToMany连接

这非常有效。 问题是,我在选择时需要按照确切的顺序排列问题,而不是按问题ID排序,因为我现在在Game类上调用getQuestions()时会得到它们。 有没有办法做到这一点?

这些问题都添加了$game->addQuestion($question); 问题存在,游戏在问题添加后保持不变。

...
class Game {
    ...
    /**
     * @ORM\ManyToMany(targetEntity="Question")
     * @ORM\JoinTable(name="Games_to_Questions",
     *      joinColumns={@ORM\JoinColumn(name="game_id", referencedColumnName="id")},
     *      inverseJoinColumns={@ORM\JoinColumn(name="question_id", referencedColumnName="id")}
     *      )
     **/
    private $questions;
    ...
}
...
class Question {
    ...
}
...

您将不得不添加具有排序顺序列的中间实体。 我们称之为GameQuestion。

/**
 * @ORM\Table(name="game_question")
 * @ORM\Entity(repositoryClass="Gedmo\Sortable\Entity\Repository\SortableRepository")
 */
class GameQuestion {
    private $game;
    private $question;
    /**
     * @Gedmo\SortablePosition
     */
    private $sortOrder;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM