検索

ホームページ  >  に質問  >  本文

doctrine2 - symfony で Doctrine の 1 対多マッピングを使用するときに、対応する Entity 配列をソートするにはどうすればよいですか?

私は Doctrine を使用して、1 人 (person) と複数の子供 (Children) などの 1 対多のマッピングを行っています。Doctrine を使用して Children を自動的に取得するときに、子供を年齢別にソートできることを望みます。

すみません: これを実現するにはどの関数をオーバーロードする必要がありますか? persion->getChildren() は SQL クエリを実行するためにどの関数を呼び出しますか?

そのようなニーズに対して結果を見つけるのは難しいです。アドバイスをお願いします。

给我你的怀抱给我你的怀抱2793日前697

全員に返信(2)返信します

  • 伊谢尔伦

    伊谢尔伦2017-05-16 16:45:51

    解決策は次のとおりです:

    修正Person类的getChildren方法

    リーリー

    変更したくない場合getChildren方法,可以写一个新的方法getChildrenOrderedByAgeも、同じ原則が適用されます。

    概要:

    Doctrine的一对多或者多对多关系中,Entity中所谓的属性是DoctrineCommonCollectionsCollection接口的某一实现的实例,默认情况下是DoctrineCommonCollectionsArrayCollection,上述解决方案中用到的就是这一接口的Filtering API(筛选接口),上述情况下,筛选的条件会最终转化到SQL レイヤー処理によりパフォーマンスの最適化を実現します。

    最後に、関連する公式ドキュメントのリンクは次のとおりです: コレクションのフィルタリング

    返事
    0
  • 我想大声告诉你

    我想大声告诉你2017-05-16 16:45:51

    @vinzao のメソッドを使用するのは問題ありませんが、Doctirne は OrderBy メソッドを提供します。

    人物:

    リーリー

    子供たち:

    リーリー

    返事
    0
  • キャンセル返事