私はアンケートエンティティを使ってアプリを設計しています。各調査は複数のSurveyQuestionエンティティ(フォームのCollectionType、Survey-> questionsの属性)を持ち、各SurveyQuestionは複数のSurveyAnswerエンティティ(SurveyQuestion-> availableAnswers)を持つことができます。SF2 Twig:CollectionTypeに埋め込まれたCoolectionTypeのレンダリングをカスタマイズするにはどうすればいいですか?
フォームは、SurveyType、QuestionTypeおよびAnswerTypeに論理的に広がっています。
availableAnswersのテンプレートフラグメントを設定するにはどうすればよいですか? 、特定のタイプをターゲットform_theme
まず:それはフィールドには質問の一つの項目からですので、アンケートの形で
{# Theming for questions #}
{% form_theme form.questions 'LCHModuleBundle:Survey/form:question.html.twig' %}
{# Theming for answers #}
{#{% form_theme form.availableAnswers 'LCHModuleBundle:Survey/form:answer.html.twig' %}#}
アクセスavailableQuestionsすることは不可能に見え小枝
は、私は約2リードを見てコレクション。 (thisに従って)
次に、ブロック命名:
調査票小枝で:質問question.html.twigで
について
{% form_theme form with ['LCHModuleBundle:Survey/form:question.html.twig', 'LCHModuleBundle:Survey/form:answer.html.twig'] %}
- 。 QuestionTypeで
{#Question list rendering#} {% block _lchmodule_bundle_survey_type_questions_widget %}...{% endblock %}
:answer.html.twigで
class QuestionType extends AbstractType { const NAME= "lchmodule_bundle_question_type";. public function getName() { return self::NAME; } /** * @return string */ public function getBlockPrefix() { return self::NAME; } }
-
答えを
:AnswerTypeで
{% block _lchmodule_bundle_answer_type_availableAnswers_widget %}...{% endblock %}
:
class AnswerType extends AbstractType { const NAME = "lchmodule_bundle_answer_type"; /** * @return string */ public function getName() { return self::NAME; } /** * @return string */ public function getBlockPrefix() { return self::NAME; } }
THemingは質問には効果的ですが、回答には効果がありません。 CollectionType内に埋め込まれたCollectionTypeであるという事実に関して、availableQuestionsテーマにアクセスするにはどうすればよいですか?あなたのライト用
おかげで、
ニコラス
'collection type'フィールドをループし、ループの内側に別のtwigファイルを含めます。ここで、子フォームを持つことができます。必要なパラメータを渡します。次に、付属の小枝ファイルの中で、必要に応じて 'form_theme'を設定します。 – Jeet
ありがとうございました!これはうまくいった。私は良いものとしてマークすることができる答えを入れてもらえますか? – nbonniot