在symfony 2.1.8中启用ESI时出现Twig语法错误

Ive attempted to add an ESI render with {'standalone': true} to one of my twig templates and am getting the TWIG syntax error of:

Unexpected token "punctuation" of value "," ("end of statement block" expected) in AccommMiddleBundle:Home:layout.html.twig at line 155

here is the relevant twig template block:

150 <div class="container">
151     <h1>{{ blog_articles.0.title }}</h1>
152     <a href="{{blog_articles.0.guid}}">Moose</a>
153 </div>
154 
155 {% render url('accomm_middle_home_recent_articles', {fred: 1}), {'standalone': true} %}
156 
157 {% set charity_url = "http://www.accommodation.com/charity" %}

Removing the , {'standalone': true} gets the template to render fine.

Im using Symfony 2.1.8 with a clean vendors and there seems to be no differences with the standard edition dependencies. Any ideas on how to debug this ?

thanks for any help

MikeB

p.s. here are my installed packages

AccomDotCom/AccomDotComRESTClientBundle 0.1               The RESTFul models for talking to the Accommodation.com privateapi (baghdadsquirrel) via symfony
behat/behat                             v2.4.5            Scenario-oriented BDD framework for PHP 5.3
behat/gherkin                           v2.2.9            Gherkin DSL parser for PHP 5.3
behat/mink                              v1.4.3            Web acceptance testing framework for PHP 5.3
behat/mink-browserkit-driver            v1.0.4            Symfony2 BrowserKit driver for Mink framework
behat/mink-extension                    v1.0.1            Mink extension for Behat
behat/mink-selenium2-driver             v1.0.5            Selenium2 (WebDriver) driver for Mink framework
behat/mink-zombie-driver                v1.0.3            Zombie.js driver for Mink framework
behat/symfony2-extension                v1.0.1            Symfony2 framework extension for Behat
doctrine/common                         2.3.0             Common Library for Doctrine projects
doctrine/dbal                           2.3.2             Database Abstraction Layer
doctrine/doctrine-bundle                v1.0.0            Symfony DoctrineBundle
doctrine/orm                            2.3.2             Object-Relational-Mapper for PHP
guzzle/guzzle                           v2.8.7            Guzzle is a PHP HTTP client library and framework for building RESTful web service clients
instaclick/php-webdriver                1.0.12            PHP WebDriver for Selenium 2
jms/aop-bundle                          1.0.0             Adds AOP capabilities to Symfony2
jms/cg                                  1.0.0             Toolset for generating PHP code
jms/di-extra-bundle                     1.1.1             Allows to configure dependency injection using annotations
jms/metadata                            1.1.1             Class/method/property metadata management in PHP
jms/security-extra-bundle               1.2.0             Enhances the Symfony2 Security Component by adding several new features
kriswallsmith/assetic                   v1.1.0-alpha4     Asset Management for PHP
monolog/monolog                         1.2.1             Logging for PHP 5.3
nelmio/esi-debug-bundle                 1.0.0             Shows you caching information around ESI requests for debugging purposes
sensio/distribution-bundle              v2.1.8            The base bundle for the Symfony Distributions
sensio/framework-extra-bundle           v2.1.8            This bundle provides a way to configure your controllers with annotations
sensio/generator-bundle                 v2.1.8            This bundle generates code for you
swiftmailer/swiftmailer                 v4.2.2            Swiftmailer, free feature-rich PHP mailer
symfony/assetic-bundle                  v2.1.2            Integrates Assetic into Symfony2
symfony/monolog-bundle                  v2.1.8            Symfony MonologBundle
symfony/swiftmailer-bundle              v2.1.8            Symfony SwiftmailerBundle
symfony/symfony                         v2.1.8            The Symfony PHP framework
twig/extensions                         dev-master v1.0.0 Common additional features for Twig that do not directly belong in core
twig/twig                               v1.12.2           Twig, the flexible, fast, and secure template language for PHP
vipsoft/jira-extension                  v1.0.9            Load features for Behat from Jira issues

1个回答



Symfony2.1 </ strong>中,要使渲染块适应正确的表示法,您需要</ p >


  • 将您的参数放在单引号'</ code>之间:在这种情况下,您将拥有'fred':1 </ code> </ li>

  • 使用{} </ code>语句添加,即使它是空的</ em>:</ li>
    </ ul>

    这给了你 :</ p>

      {%render url('accomm_middle_home_recent_articles',{'fred':1})with {},{'standalone':true}%} 
    </ code > </ pre>


    注意:Symfony2.1中绝对需要 with {} </ code>语句,从安全版本。 但是,Symfony最近可能已经改变了这一点,我不认为Symfony2.2中不再需要它。</ p>


    {#with with参数是必需的但是忽略#} </ p>
    </ blockquote>

    他们提供了一个示例:</ p>

      {%render url(“path_to_controller_router”,{'  param':1}){},{'standalone':true}%} 
    </ code> </ pre>
    </ div>

展开原文

原文

In Symfony2.1, to adapt your render block to the correct notation, you need to

  • put your arguments between single quote ' : in this case you would have'fred': 1
  • Add the with{} statement even if it's empty:

Which gives you:

{% render url('accomm_middle_home_recent_articles', {'fred': 1})  with {}, {'standalone': true} %}

Note: It looks like the with{} statement is absolutely needed in Symfony2.1, from this security release. However, Symfony might have changed this recently and I don't think it is needed in Symfony2.2 anymore.

{# the with argument is needed but ignored #}

And an example they provide with it:

{% render url("path_to_controller_router", { 'param': 1 }) with {}, { 'standalone': true } %}

drzb7969753
drzb7969753 好多年来一直在使用这个网站,但它是我的第一个问题:) ..已经做了感谢提示。
7 年多之前 回复
duanlianyun0462
duanlianyun0462 大! 如果您是本网站的新用户,请不要忘记如果他们解决了您的问题,请接受答案! 祝你好运。
7 年多之前 回复
doudong2149
doudong2149 感谢@Patt正在使用来自symfony http缓存的doco,并没有看到安装在安全公告中的with {}。 现在回到我的头部撞墙砖,这是我的清漆配置:)
7 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐