doctrinesQueryBuilderでエンティティの配列を取得するためにselectを使用したいと思います。しかしORDER BY
、外部属性(外部キーに関連するテーブルの属性)を使用するが必要です。直感的に書きたいのはこんな感じです。
$repo = $this->getDoctrine()->getRepository('MyBundle:relation_table');
$query = $repo->createQueryBuilder('r')
->orderBy('r.fevent.date', 'DESC')
->getQuery();
当然のことながら、これは機能しません。SQLでは、SELECT
次のようになります。
SELECT r.* FROM relation_table AS r
INNER JOIN events AS e
ON e.IDevent = r.Fevent
ORDER BY e.date
しかし、エンティティオブジェクトを返すためにDoctrineも必要です。私は2つの可能な解決策を考えます:
- QueryBuilderを使用して、、
INNER JOIN
またはを作成します - 上記と同じように、無料のSQLステートメントを作成し、Doctrineにその結果を使用してエンティティオブジェクトを作成するように指示します。
ヒントはありますか?ありがとう。