我正在设计一个带有Survey实体的应用程序。每个调查可以有多个SurveyQuestion实体(表格中的CollectionType,属性为survey->questions),每个SurveyQuention可以有多条SurveyAnswer实体(SurveyQuest->available Answers)。
表格按逻辑排列为SurveyType、QuestionType和AnswerType。
如何设置可用答案的模板片段
我看了两条线索:
首先,form_theme针对特定类型:在调查表单中的trick
{# 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' %}#}
看起来无法访问可用问题,因为它是一个问题集合项目中的字段
第二,块命名(根据此):
调查表格中的分支:
{% form_theme form with ['LCHModuleBundle:Survey/form:question.html.twig', 'LCHModuleBundle:Survey/form:answer.html.twig'] %}
- 对于问题
有问题。html.twig:
{#Question list rendering#}
{% block _lchmodule_bundle_survey_type_questions_widget %}...{% endblock %}
问题类型:
class QuestionType extends AbstractType
{
const NAME= "lchmodule_bundle_question_type";.
public function getName()
{
return self::NAME;
}
/**
* @return string
*/
public function getBlockPrefix()
{
return self::NAME;
}
}
- 回答
在answer.html.twig:中
{% block _lchmodule_bundle_answer_type_availableAnswers_widget %}...{% endblock %}
In AnswerType:
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这一事实的可用问题主题?
谢谢你的灯光,
Nicolas
在主窗体上,将您的收藏项目打印为:
{% for collectionItem in form.collections %}
{% include 'AppBundle:Blog:collection.item.html.twig' %}
{% endfor %}
以便可以在单独的twitch文件中列出共有项目。现在,在单独的分支文件(collection.item.html.twig
)中,定义您的form_theme
或进行必要的更改。
希望这能有所帮助。