想象一下,我在我的树枝模板中有这样的东西 {% block posLeft %} —– {%endblock%} 有什么办法可以检查posLeft块的存在,而不用调用: block("posLeft") 并检查posBlock的返回值来改变存在。 我是Symfony2 + Twig的新手。
我使用Symfony 2和Twig,我的问题非常简单: 在一个视图中,我想扩展一个基于variables的布局。 如果该variables为false我想扩展UdoWebsiteBundle::layout.html.twig ,如果它是true我想扩展UdoWebsiteBundle::layout_true.html.twig 。 这是我试过的代码: {% block layout_extender %} {% if intro == 'false' %} {% extends 'UdoWebsiteBundle::layout.html.twig' %} {% else %} {% extends 'UdoWebsiteBundle::layout_true.html.twig' %} {% endif %} {% endblock %} 我得到这个错误: 第7行的“UdoWebsiteBundle:home:home.html.twig”中禁止使用多个扩展标签 有没有其他办法可以做到这一点?
比方说,我有这样的for循环: {% for elem in arrMenu %} <div class="topmenu-button"> <a href="{{ elem.url }}">{{ elem.name }}</a> </div> {% endfor %} 在这种forms下,它会呈现如下: <div class="topmenu-button"><a href="url">name</a></div> <div class="topmenu-button"><a href="url">name</a></div> <div class="topmenu-button"><a href="url">name</a></div> <div class="topmenu-button"><a href="url">name</a></div> 如何可以帮助我添加第一个和最后一个类的div,所以我会有这样的结果: <div class="topmenu-button first"><a href="url">name</a></div> <div class="topmenu-button"><a href="url">name</a></div> <div class="topmenu-button"><a href="url">name</a></div> <div class="topmenu-button last"><a href="url">name</a></div>
我正在使用Symfony2与Twig模板的PHP项目,我找不到解决此问题的方法。 我有一个pipe理包,所有的模板扩展从pipe理基地,其中有一个主菜单模板。 我需要将页面的基本模板中的菜单的当前选项卡设置为当用户在该页面上时进行select。 有没有办法通过扩展将parameter passing给基础模板?
我需要输出一部分客户端句柄模板,其标签类似于树枝的“say”标签: <script type="text/x-handlebars"> {{#view App.MyView}} <h1>Hello world!</h1> {{/view}} </script> 而树枝试图parsing这些模板。 我如何防止它? 是否可以标记为纯文本模板的一部分?
我想要做的是获取variables存储在窗体视图。 {% form_theme edit_form _self %} {% block field_widget %} {% spaceless %} {% set type = type|default('text') %} <input type="{{ type }}" {{ block('widget_attributes') }} {% if value is not empty %}value="{{ value }}" {% endif %}/> {# MY CODE #} {% if type == "file" %} <a class="BOpreview" href="{# NEED TO REPLACE VAR […]
我正在使用symfony2和SonataAdminBundle。 我有一个简单的实体称为邮政,其中我有内容字段,基本上是HTML文本(从loggingckeditor)。 我需要在Post列表中将内容字段显示为原始HTML,而不会将其转义。 像这样黑客入侵base_list_field模板 {% block field %}{{ value|raw }}{% endblock %} 工作,但显然不是正确的方法。 任何提示? 编辑:解决! 我在config.yml中为sonata_doctrine_orm_admin定义了一个自定义htmltypes: sonata_doctrine_orm_admin: templates: types: list: html: MyBundle:Default:list_html.html.twig 并创build了自定义list_html.html.twig模板,我不逃避HTML: {% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %} {% block field%} {{value|raw}} {% endblock %} 现在在PostAdmin中,我可以在configureListFields方法中定义字段的行为: $listMapper ->add('content', 'html')
如何在树枝模板的视图中多次渲染一个块? 目前我有一个块,让我们把它叫做包含(通过render )的小枝文件中定义的something 。 然后使用以下代码将它包含在layout-twig文件中: {% block something %}{% endblock %} 一切都很好,但是一旦我第二次调用这个标签,我得到以下错误信息: The block 'something ' has already been defined in "::layout.html.twig" 因此:我怎样才能多次渲染一个块?
我有一个Symfony2(2.2)的应用程序。 当我想发送邮件时,我遇到了path问题,这些path都是相对path,显然不适用于邮件 用于呈现我正在使用的path: <a href="{{ path('route_name', {'param' : value}) }}">A link</a> 和资产: <img src="{{ asset('bundle/myname/img/image.gif') }}" alt="Title"/> 前面的例子工作正常,但path是相对的,因此我需要追加域。 我可以做这样的事情: <a href="http://domain.com{{ path('route_name', {'param' => param1}) }}">A link</a> 但这不是我的问题的最佳解决scheme,因为我有不同的域名。 更新 我find了具有url函数的path的解决scheme,但我仍然需要资产的解决scheme。
我尝试使用一个简单的循环,在我的真实代码中,这个循环更复杂,我需要break这个迭代: {% for post in posts %} {% if post.id == 10 %} {# break #} {% endif %} <h2>{{ post.heading }}</h2> {% endfor %} 我如何使用break行为或在Twig中continue PHP控制结构?