是否可以使用外来属性订购多对多关联?
例如:假设有3个实体Client,Order和Dish。为了论证,请说客户和订单之间存在一对多关联,并且Order和Dish之间存在多对一关联。那个Dish有一个名为price的字段
因此,客户可以下多个订单,每个订单对应一个菜。
我想根据菜肴的价格对一对多关联进行排序。即,为客户实体提供getOrders()方法,该方法返回按$ order-> getDish() - > getPrice()排序的订单。
我知道我可以通过使用Query来实现这个功能(我不希望这样,因为我无法访问客户端实体中的存储库),或者通过对内存中的订单进行排序(这比较慢) ),但我宁愿让Doctrine做这项工作。
答案 0 :(得分:0)
只需使用注释
**
* @ORM\ManyToOne(targetEntity="Dish")
* @ORM\OrderBy({"price" = "DESC"})
*/
private $dish;
我的答案是基于你的描述,但我不确定一个订单只能有一个菜(否则订购会没用,我错了吗?)
如果您需要更改关系基数,当然,您可以:答案的地球是OrderBy
注释