ドクトリンでクエリを設定しましたが、それが想定されていることを行うと確信しています...複数のテーブルを結合するため、外部キーを介してデータを取得するために余分なクエリをスキップできます。
$posts = $this->getDoctrine()->getManager()
->createQuery('
SELECT a AS article, COUNT(c) AS comments
FROM ArticleBundle:Article a
LEFT JOIN CommentsBundle:Comment c WITH (c.article = a.id)
LEFT JOIN ImageBundle:Image i WITH (i.id = a.image)
GROUP BY a.id
ORDER BY a.timestamp DESC
')
->getResult();
次のように、データに正常にアクセスできます。
{% for post in posts %}
<div id="news-story">
<div class="title">{{ post.article.title }}</div>
<div class="comments">{{ post.comments }}</div>
...
{% endfor %}
問題は、2 番目の列 (「i AS イメージ」) をフィールド リストに追加するとすぐに失敗することです。次のメッセージが表示されます...
「配列」のアイテム「記事」は存在しません...
...そして、私はその理由を完全には理解できません。{{ post.article.title }} や {{ post.image.path }} などの変数にアクセスできることを願っています (ちなみに存在します)...しかし、できません。
どんな考えでも大歓迎です。
ありがとう!