如何在专用包中引用自定义字段类型的分支



我(仍然)在尝试将http://xoxco.com/clickable/jquery-tags-input引入到一个专用的bundle中。到目前为止,我有一个类型作为text的子类型和一个数据转换器,用于将逗号分隔的字符串转换为object的数组,反之亦然。

现在我想用上面链接的JQuery代码装饰文本字段。据我所知,我必须定义一个像

这样的块
{% block manytomanycomboselector_widget %}
{% spaceless %}
  {{ block('text_widget') }}
  <script>
    $(function(){
      $("#{{ id }}").tagsInput();
    });
  </script>
{% endspaceless %}
{% endblock manytomanycomboselector_widget %}

in [MyTypeBundle]Resources/views/Form/fields.html.twig

现在,文档和这个问题的答案在StackOverflow状态,我必须引用fields.html.twig在某个地方,要么在模板中使用的形式或在app/,但这似乎不是必要的其他字段类型的束,虽然我不能看到他们的代码为什么。除了文件中的这个块,我还需要在bundle中配置什么?

我也没有得到我必须把css和js的头要求,以及我如何处理一般的要求,如jQuery本身。

我也有同样的问题&我通过将字段模板合并到twig.form.resources参数中来解决这个问题。

所以,在我的包的DI扩展(MyBundle/DependencyInjection/MyBundleExtension.php),我添加:

$container->setParameter('twig.form.resources', array_merge(
    array('MyBundle:Form:field_widget.html.twig'),
    $container->getParameter('twig.form.resources')
));

注意,你的bundle必须在AppKernel中的TwigBundle之后注册。

编辑:

表单字段没有链接到任何JS或CSS。所以,在我看来,你有两个解。

首先,你直接包装你的JS &字段模板中的CSS和bundle保持独立。

其次,你告诉最终用户他们需要手动包含一些JSS &CSS,每次他们使用你的字段类型。

IoFormBundle &GenemuFormBundle使用第二种解决方案,就像他们的文档中解释的那样。

最新更新