php-Symfony / Doctrine ManyToMany按分配顺序
作者:互联网
我有一个名为Game的实体,该实体具有一个JoinTable与一个名为Question的实体的ManyToMany连接.
效果很好.问题是,我需要按选择的确切顺序排列问题,而不是按问题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;
}
标签:doctrine-orm,join,symfony,many-to-many,php 来源: https://codeday.me/bug/20191120/2046820.html