我想围绕一堆我的字段设置一个特殊的div。为此我想在表单构建器中添加一些我可以在form_theme中检测到的内容,并在它出现时设置div。
我尝试添加
->add('field', new myCustomType(), array('inherit_data' => true, "label" => false, "required" => false, 'attr' => array("test" => "aaa")))
到表单构建器,设置自定义attr,它实际上在html中呈现为属性...但我无法在表单主题中检测到它。
{{ block('widget_container_attributes') }}
仅提供小部件属性,
{{ block('row_container_attributes') }}
不起作用。我实际上很难在网上找到关于表格主题的blocks
中可用变量以及如何使用它们的任何来源(已经很难知道如何调用块)。
我在官方网站上查找了更多信息here,但大部分没有成功......
非常感谢您的帮助!
答案 0 :(得分:1)
如果您将其放在表单构建器中,那么您也可以在模板中永久设置。如果设置数据需要一些逻辑,那么无论如何它都属于你的控制器,所以就把它放在那里开始。
控制器:
public function someAction()
{
// ....
return $this->render('some_twig_template.twig.html', array(
'attr' => array("test" => "aaa")
);
}
然后在你的树枝模板
{{ dump(attr) }}
{{ dump(attr.test) }}
编辑: 要每次在模板中渲染,可以直接在渲染字段上设置类:
{{ form_label(form.field, 'My label', { 'label_attr': {'class': 'js-hidden-row'} }) }}
{{ form_widget(form.field, { 'attr': {'class': 'js-hidden-row'} }) }}
然后在我的javascript中你可以用一些简单的jQuery隐藏:
<script>
jQuery(document).ready(function() {
$('.js-hidden-row').hide();
});
</script>