ジョイントクエリから値にアクセスする際に問題があります。私は、テーブルを結合/結合するリポジトリにクエリを構築しました。DoctrineのJoinクエリからの値へのアクセス
次のコードを少し分かりやすくするために、私は予定があります。この予定はイベントの一部であり、イベントはイベントグループの一部です。イベントグループには参加者がいます。実際の生活では、これはイベントのすべての参加者が予定に参加していることを意味します。たとえば、トレーニングセンターがあります。このセンターには、さまざまなトレーニングコース(ランニング、リフトなど)があります。各コースは、グループA(毎週月曜日と金曜日、グループBは常に火曜日と木曜日)の異なるイベントを持っています。だから、あなたはグループAに参加することができました。そして、アポイントメントは各グループの正しい日時です。
今私はすべての予定を1人から欲しがっています。だから私のクエリは次のようになります。
$qb = $this->createQueryBuilder('a')
->leftJoin('a.event', 'event')
->leftJoin('event.eventgroup', 'eventgroup')
->innerJoin('event.participants', 'p', 'WITH', 'p.id = :id')
->setParameter('id', $user->getId())
;
return $qb->getQuery()->getResult();
私は教義を見るとMySQLで処理されたクエリを実行すると、私はまた、正しい結果を得ます。しかし、私の小枝ファイルのテーブルから値にアクセスしたい場合、それはうまくいきません。
{% for appointment in appointments|default(false) %}
<li class="list-group-item">
<a href="livemode.html">
<span class="col-md-4">{{ appointment.getEventGroup() }} <span class="tag tag-default">{{ appointment.getName() }}</span></span>
<span class="col-md-4">{{ appointment.getTopicBlock().getName() }}</span>
<span>{{ appointment.getDate()|date("d.m.Y") }} 09:30 Uhr</span>
</a>
</li>
{% endfor %}
エンティティとメソッドは正しいです。他のクエリは正常に動作します。しかし、これでは、メソッドが正しくないSymfonyのエラーが出ます。値とループを使用しないと、html要素の4倍の値になります。これは結果の正確な量でもあります。内部結合に問題がありますか?そのため、IDをdb内の他のエンティティにリンクするだけではなく、複数回イベントに参加することはできません。別の方法で値にアクセスできますか?
別の回答を追加するのは遅すぎますか?いすゞがうまくいくかもしれませんが、あなたが間違っていることがわかります... –