私は2つのテーブルを持っています:
comment - id, application_id, comment, user_id, created_at, deleted_at
comment_likes - comment_id, user_id
標準の DQL を使用して、アプリケーションのコメントを取得できますSELECT u FROM Comment WHERE :application = application
コメントをたどるとき、ログインしているユーザーがすでにコメントを気に入っているかどうかを確認したい。
symfony1 では、単純な遅延クエリを使用していたでしょう$comment->hasUserLiked()
現時点では、symfony2 で、アプリケーション コメントに対するすべてのユーザーのいいねのクエリと、すべてのアプリケーション コメントのクエリを実行する必要があります。
アプリケーションのコメントをループするとき、各コメントでサブループを実行して、ユーザーが好きなレコードがユーザーの好きなコメント コレクションに存在するかどうかを確認します。これはきれいではありません。
これが理にかなっていることを願っています。
より良い方法はありますか?
編集:サブコントローラーを使用して、ユーザーがコメントを好むかどうかをレンダリングできます....しかし、それは数行のhtmlだけではかなりやり過ぎのようです。ただし、現在の実装よりもクリーンです。