IvoryCKEditorBundle Symfony:如何在我的OWN重新定义的TWIG模板中使用来自IvoryCKEditorBundle TWIG模板的“ckeditor_widget”

时间:2017-04-15 10:00:01

标签: forms symfony ckeditor twig symfony-3.2

我在SYMFONY 3.2项目中实现了IvoryCKEditorBundle。

我遵循了here中的指南,并概述了doc on the official Symfony site

现在我在IvoryCKEditorBundle目录中看到以下文件退出:

  • [我的 项目] \厂商\ egoloen \ CKEditor的束\资源\视图\表格\ ckeditor_widget.html.twig
  • [我的 项目] \厂商\ egoloen \ CKEditor的束\枝条\ CKEditorExtension.php

[my project]\vendor\egoloen\ckeditor-bundle\Resources\views\Form\ckeditor_widget.html.twig定义{% block ckeditor_widget %}

在我的项目中,我使用official doc中给出的所有技巧重新定义了自己的模板来渲染表单。在[my project]\src\MyBundle\Resources\views下,我有一个文件input_inline_template.html.twig,看起来像这样:

{% extends 'form_div_layout.html.twig' %}
{% use 'CKEditorBundle:Form:ckeditor_widget.html.twig' %}
{% block form_row  %}
   <div    class='col-12'  id={{ id ~ '_div_row_id'}}>
        {% block form_label   %}
         <div class='col-4' id={{ id ~ '_div_label_id' }}>
            {{ parent() }}
          </div>
        {% endblock %}

        {% if form.vars.block_prefixes.2 == "textarea" %}
            {% if (form.vars.block_prefixes.3 is defined) and (form.vars.block_prefixes.3 == "ckeditor") %} 
             {% block ckeditor_widget %}
                 <div class='col-8'>
                  {{ parent() }}
                 </div>
             {% endblock %}
         {% else %}
            {% block textarea_widget %}
                <div class='col-8'>
                  {{ parent() }}
                 </div>
            {% endblock %}
        {% endif %}
     {% endif %}
   </div>
{% endblock %}

这不起作用。它告诉我它找不到ckeditor_widget如果我没有行{% use 'CKEditorBundle:Form:ckeditor_widget.html.twig' %}它会抛出错误:

  

模板“form_div_layout.html.twig”中阻止“ckeditor_widget”在“form_div_layout.html.twig”中不存在。

当实现行{% use 'CKEditorBundle:Form:ckeditor_widget.html.twig' %}时,它会抛出一个错误:

  

无法找到模板“CKEditorBundle:Form:ckeditor_widget.html.twig”

它告诉我它在CKEditorBundle:Form:ckeditor_widget.html.twig中寻找:  [my_symf_project]\app/Resources/views[my_symf_project]\vendor\symfony\symfony\src\Symfony\Bridge\Twig/Resources/views/Form[my_symf_project]\vendor\knplabs\knp-menu\src\Knp\Menu/Resources/views

我不知道如何在[my project]\app\config\config.yml中配置它应该[my project]\vendor\egoloen\ckeditor-bundle\Resources\views\Form\查找ckeditor_widget.html.twig

1 个答案:

答案 0 :(得分:0)

我找到了a hint here

[my project]\src\MyBundle\Resources\views\input_inline_template.html.twig中,我已将{% use 'CKEditorBundle:Form:ckeditor_widget.html.twig' %}替换为:{% use 'IvoryCKEditorBundle:Form:ckeditor_widget.html.twig' %}

修好了它。