具有资产的symfony自定义表单类型

时间:2015-08-12 10:12:21

标签: forms symfony twig

我在symfony2中创建了一个自定义表单类型。这个formtype有它自己的模板,这很好。

表单类型还需要客户端上的一些javascript才能正常工作。 我想使用与渲染窗口小部件相同的模板将此javascript添加到页面中。手动执行此操作有点麻烦。 我可以在每个页面上手动添加javascript,但如果它只是自动发生会很好。

我无法在元素本身之前或之后添加javascript,因为它依赖于jquery,它只加载在正文的底部。

我尝试使用在“主模板”中定义的块(名为block_javascript)将自定义javascripts添加到页面的页脚,但似乎表单的呈现效果有点不同并且该区块不可用。

我正在使用资产来准备和归还资产。

有没有办法可以在渲染表单小部件时使用正在渲染的主模板中的块?

1 个答案:

答案 0 :(得分:0)

我还没有考虑所有的后果,或者它是否可行,但这里有一个可以解决问题的想法:使用事件调度员。

  • 资产添加事件
  • 包含要使用的资产列表并订阅上述事件的服务
  • 使用上述服务的Twig扩展程序,可以在模板中访问资产
  • 使用正确的参数
  • 触发表单类型的buildView()函数中的事件
  • 在布局模板中使用Twig扩展程序

理论上应该有效。