Symfony 实体 - 在多对多连接中订购加入的实体

waw*_*awa 2 php mysql join symfony doctrine-orm

所以假设我们使用 aUser和 aTicket类。他们是正常的实体,没什么特别的。

User 类包含以下几行:

/**
 * @ORM\ManyToMany(targetEntity="Ticket", mappedBy="collaborateurs")
 **/
private $tickets;
Run Code Online (Sandbox Code Playgroud)

Ticket 类包含以下内容:

/**
 * @ORM\ManyToMany(targetEntity="User", inversedBy="tickets")
 * @ORM\JoinTable(name="users_to_tickets")
 **/
private $collaborateurs;
Run Code Online (Sandbox Code Playgroud)

要获取用户拥有的所有票证,我只需调用getTickets()Symfony 创建的函数即可。至于好。的Ticket类有一些额外的字段,如updated它是一种DateTime场或者status是一个整数。我想将这些票按status DESCupdated DESC

我知道我可以在存储库中创建一个函数,例如findTicketsByUserOrderedByFooBar($user),但我想知道是否有更好的方法。

qoo*_*mao 6

如果您始终希望您的票按该顺序排列,您可以设置并orderBy在关联上。

/**
 * @ORM\ManyToMany(targetEntity="Ticket", mappedBy="collaborateurs")
 * @ORM\OrderBy({"status" = "DESC", "updated" = "DESC"})
 **/
private $tickets;
Run Code Online (Sandbox Code Playgroud)