4

Doctrine Modelのデフォルトの並べ替え属性で問題になって.ymlいるのは、コレクション値の関連付けのデフォルトの並べ替えを定義することです。

次のように、デフォルトの並べ替えでモデルを取得したいと思います。

Foo:
    columns:
    ...
    options:
        orderBy: bar DESC

この YAML ベースの設定に相当する注釈は何ですか?

4

1 に答える 1

10

編集:これはデフォルトでは不可能です。リポジトリから取得されたエンティティは、指定された並べ替え基準によって取得されます。

$entities = $entityRepository->findBy(array(), array('field' => 'ASC'));

これ、DQL、およびCriteria APIは、特定の並べ替え基準でエンティティをフェッチする現在の方法です。

「 Doctrine Model のデフォルトの並べ替え属性」での質問は、リポジトリからエンティティを直接取得することとは関係のない、コレクション値の関連付けの並べ替えに関するものです。

これらの関連付けについて、「 Doctrine Model の Default sort attribute」に相当する注釈は次のとおりです(元の回答):

Doctrine 2 ORM の公式の注釈ドキュメントの時点で、コレクション値の関連付けのデフォルトの並べ替え条件の注釈です@OrderBy({"field" = "ASC", "otherField" = "DESC"})

使用方法は次のとおりです。

/**
 * @ORM\OneToMany(targetEntity="Users")
 * @ORM\OrderBy({"username" = "ASC"})
 */
protected $users;
于 2013-02-26T12:40:42.723 に答える