首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Symfony2中使用KnpPaginatorBundle对ManyToOne关系进行排序

在Symfony2中使用KnpPaginatorBundle对ManyToOne关系进行排序
EN

Stack Overflow用户
提问于 2012-04-25 23:36:18
回答 2查看 2.1K关注 0票数 4

我在一个Symfony2项目中使用KnpPaginatorBundle。我有两个具有manyToOne关系的实体。

代码语言:javascript
复制
/**
 * @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进行排序

代码语言:javascript
复制
<{{  entities.sortable('bar', 'i.bar')|raw }}

我收到以下错误消息

代码语言:javascript
复制
There is no such field [bar] in the given Query component, aliased by [i]

有没有办法使用bar.name使foo中的栏可排序?

干杯

EN

回答 2

Stack Overflow用户

发布于 2012-07-22 17:35:19

必须将表连接到要提供给KnpPaginatorBundle的查询中

代码语言:javascript
复制
SELECT i
FROM abc\DemoBundle\Entity\Bar i
JOIN i.bar b 

现在,您可以使用以下内容进行排序:

代码语言:javascript
复制
<{{  entities.sortable('bar', 'b.name')|raw }}>
票数 2
EN

Stack Overflow用户

发布于 2012-05-03 23:10:26

我相信sortable有一个标签和一个列。所以你可能是在找

代码语言:javascript
复制
<{{ entities.sortable('Name', 'i.name')|raw }}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10318940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档