doctrine2 - symfony で Doctrine の 1 対多マッピングを使用するときに、対応する Entity 配列をソートするにはどうすればよいですか?
给我你的怀抱
给我你的怀抱 2017-05-16 16:43:51
0
2
668

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

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

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

给我你的怀抱
给我你的怀抱

全員に返信(2)
伊谢尔伦

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

修正Person类的getChildren方法

リーリー

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

概要:

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

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

いいねを押す +0
我想大声告诉你

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

人物:

リーリー

子供たち:

リーリー

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート