根据Doctrine documentation,可以使用@OrderBy({"name" = "ASC"})
对实体中的字段进行排序。使用PHP 8属性,字段定义可能如下所示:
#[ORM\Column(length: 25)]
private ?string $food_name;
不过,再加上这样一个排序:#[ORM\OrderBy({"food_name" = "ASC"})]
是不可接受的语法。#[ORM\OrderBy("food_name" = "ASC")]
也是。
可接受的语法(如#[ORM\OrderBy('food_name = ASC')]
)会导致
Doctrine\ORM\Mapping\OrderBy::__construct(): Argument #1 ($value) must be of type array, string given
对于本用例,Food是与Meal的ManyToMany关系中的集合字段。我尝试完成一个排序字段,以便使用{% for food in meal.foods %}
的模板将呈现一个预先排序的食物名称列表。
A)是否可以在Food实体中完成此操作?或B)是否应该在Meal实体中完成此操作?或C)是否无法实现预分类字段?
如果可以进行预排序,正确的语法是什么?
1条答案
按热度按时间g52tjvyc1#
在Meal.foods上添加属性:
另请参阅此处的文档:wwwhttps://www.doctrine-project.org/projects/doctrine-orm/en/2.13/reference/attributes-reference.html#attrref_orderby