原则2:排序XToMany关系,它本身由另一个实体在特定属性上排序



我有一个实体"Menus",它包含几个实体"Dishes"(ManyToMany)。

实体"Dish"有一个实体"DishType"(ManyToOne)。

实体DishType包含一个属性"displayOrder"(我想在上面设置顺序)。

在Twig中,我想做一个循环:对于每个菜单,显示按"DishType"分组的每道菜及其本身,按DishType的属性"displayOrder"排序。

在我的实体"菜单"中,我有:

/**
* @ORMManyToMany(targetEntity="Dish", inversedBy="menus", cascade={"persist"})
* @ORMJoinTable(name="dish_menus")
* @ORMOrderBy({"dishType" = "ASC"})
*/
protected $dishes;

但我想要这样的东西

@ORMOrderBy({"dishType.displayOrder" = "ASC"})

有办法做到这一点吗?

难道没有一种方法可以像一样将默认订单添加到整个实体"DishType"中吗

* @ORMOrderBy({"displayOrder" = "ASC"})

提前感谢您的建议。

远非理想,但我用一个trick扩展来实现这一点,我本质上是在trick中调用一个过滤器来为我排序实体的子级

public function orderPosition($arr) {
$size = count($arr);
for ($i = 0; $i < $size; $i++) {
for ($j = 0; $j < $size - 1 - $i; $j++) {
if ($arr[$j + 1]->getPosition() < $arr[$j]->getPosition()) {
$this->swap($arr, $j, $j + 1);
}
}
}
return $arr;
}

然后称之为树枝

{%for single in orderPosition($entity->otherEntity) %}
{{single}}
{%endfor%}

相关内容

  • 没有找到相关文章