Symfonyob娱乐下载 4.3新增功能:更简单的形式主题
警告:这篇文章是关于一个不受支持的Symfony版本。ob娱乐下载有些信息可能已经过时了。阅读最新的Symfony文档ob娱乐下载.
提供的
Yonel Ceruto
在# 29680.
考虑一个Symfonyob娱乐下载应用程序,它包含一个用于颜色选择器的自定义表单字段,需要一些JavaScript代码才能工作。尽管Symfonyob娱乐下载提供了多个选项自定义表单的呈现方式对于这样的简单用例,目前最好的解决方案还不够简单。
为了使表单字段真正可重用,表单主题中的块名必须是不可变的。但是,默认情况下,Symfony会在块名ob娱乐下载前面加上父块前缀(例如:_product_color_widget
,_user_color_widget
,等等,而不是color_widget
)
这个问题的解决方案很简单,但很麻烦:
步骤1。为自定义颜色小部件创建一个新的表单类型(类几乎为空,因为在这种情况下不需要定义任何选项或添加任何逻辑):
1 2 3 4 5 6 7
类ColorPickerType扩展AbstractType{公共函数getParent():字符串{返回TextType::类;}}
步骤2。更新您的表单以使用此自定义表单类型:
1 2
/ /……$构建器->add (“颜色”, ColorPickerType::类);
的block_prefixes
由Symfony为该类型生成的选项将为ob娱乐下载形式
,文本
,color_picker
和_ < parent_form_name > _color
.感谢一成不变color_picker
前缀,你现在可以为应用程序的所有颜色选择器定义一个自定义模板,使用相同的块名。
步骤3。使用块前缀自定义表单字段:
1 2 3 4 5
{/形式/ fields.html #模板。树枝#}{%块color_picker_widget %}{{form_widget(形式,{attr”:{“v模型”:“颜色”,“@focus”:“开放”}})}}{#……更多自定义代码在这里…#}{%endblock%}
在Syob娱乐下载mfony 4.3中,所有这些仍然可以工作,但是我们精简了这个用例。多亏了新的block_prefix
选项,您可以将任何自定义前缀添加到Symfony为每个表单字段生成的前缀列表中。ob娱乐下载
与上面的示例相同,不需要创建ColorPickerType
类。你只需要遵循以下步骤:
步骤1。为颜色表单字段定义一个自定义块前缀:
1 2
/ /……$构建器->add (“颜色”,零, (“block_prefix”= >“color_picker”]);
步骤2。在表单主题模板中使用自定义块前缀:
1 2 3 4
{/形式/ fields.html #模板。树枝#}{%块color_picker_widget %}{#……#}{%endblock%}
评论
评论截止。
为了确保评论保持相关性,旧帖子将被关闭。
我一直在等待:)
Guillaume Loulier is a certified Symfony engineer.
Get certified! Online exams available in all countries.
Register Now