我有一个BookEntity(Name,Descript,...),与TagEntity(名称,位置)有一个OneToMany关系
标签只链接到一个BookEntity,而BookEntity可以有多个标签,但也可以保持标签按显式顺序排序。
为此,我使用了一个Drag& Drop javascript插件,以便将隐藏在TagType中的输入字段设置为嵌入
$builder->add('tags','collection', array(
'type' => new TagType(),
'allow_add' => true,
'by_reference' => false,
'prototype' => true,
'allow_delete' => true)
);
我可以使用原型添加新标签。
但我有现有标签,我将进入BookType的编辑页面。
如何指定TagType的顺序?
非常感谢
答案 0 :(得分:2)
引用this issue和this one您可以使用doctrine的@OrderBy注释来从数据库中获取标记。这也会影响表单集合渲染。
/**
* @ORM\ManyToMany(targetEntity="Tag")
* @ORM\OrderBy({"position" = "ASC"})
*/
protected $tags;
就像快速提醒一样,您可以按照my answer here中的说明在控制器中订购已经提取的集合。
答案 1 :(得分:2)
您可以在树枝视图中进行排序:
{% for thing in somethings|sort('ThingIdColum') %}