我在Symfony2项目中使用KnpPaginatorBundle。我有两个实体,有很多关系。
/**
* @ORM\Entity
* @ORM\Table(name="foo")
*/
class foo {
...
/**
* @ORM\ManyToOne(targetEntity="abc\DemoBundle\Entity\Bar")
* @ORM\JoinColumn(name="bar_id", referencedColumnName="id")
*/
protected $bar;
...
}
/**
* @ORM\Entity
* @ORM\Table(name="bar")
*/
class Bar {
...
/**
* @ORM\Column(type="string", length=50, nullable=true)
*/
protected $name;
...
}
现在我想用KnpPaginatorBundle
排序<{{ entities.sortable('bar', 'i.bar')|raw }}
我收到以下错误消息
There is no such field [bar] in the given Query component, aliased by [i]
有没有办法使用bar.name来使foo中的bar可以排序?
干杯
答案 0 :(得分:2)
您必须在要提供给KnpPaginatorBundle的查询中加入表格
SELECT i
FROM abc\DemoBundle\Entity\Bar i
JOIN i.bar b
现在您可以使用以下内容进行排序:
<{{ entities.sortable('bar', 'b.name')|raw }}>
答案 1 :(得分:0)
我相信sortable需要一个标签和一列。所以你可能正在寻找
<{{ entities.sortable('Name', 'i.name')|raw }}