4

Symfony2 プロジェクトで KnpPaginatorBundle を使用しています。manyToOne 関係を持つ 2 つのエンティティを取得しました。

/**
 * @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 のバーをソート可能にする方法はありますか?

乾杯

4

2 に答える 2

2

KnpPaginatorBundle に与えるクエリでテーブルを結合する必要があります

SELECT i
FROM abc\DemoBundle\Entity\Bar i
JOIN i.bar b 

これで、次の方法で並べ替えることができます。

<{{  entities.sortable('bar', 'b.name')|raw }}>
于 2012-07-22T09:35:19.280 に答える
0

sortable はラベルと列を取ると思います。だからあなたはおそらく探している

<{{ entities.sortable('Name', 'i.name')|raw }}
于 2012-05-03T15:10:26.290 に答える