Home  >  Article  >  Backend Development  >  关于symfony传递值和twig里面的asset的问题

关于symfony传递值和twig里面的asset的问题

WBOY
WBOYOriginal
2016-06-06 20:09:501073browse

用的是symfony框架,我从后台传递两个值到twig中,然后再想赋值到asset()里面,我该怎么做?控制器传递值的代码如下:

<code>return $this->render("AcmeMinsuBundle:Default:advsImage.html.twig",
                array('pagination' => $pagination,'cfgImagePath' => $cfgImagePath)
            );</code>

twig代码如下:

<code>{% for paginations in pagination  %}
    <ul>
        <li>
            <div><img  src="%7B%7B%20asset('%7B%7B%20cfgImagePath%20%7D%7D%7B%7B%20paginations.getAdvsImagePath%20%7D%7D')%20%7D%7D" alt="关于symfony传递值和twig里面的asset的问题" ></div>
        </li>
    </ul>
{% endfor %}</code>

我知道以上方法是不行的,那cfgImagePath和paginations.getAdvsImagePath这两个变量组合起来是一个图片的路径,我改怎么传递值或者写twig里面的代码才实现呢。刚开始用symfony,很多都不是很懂,忘各位不吝赐教。

回复内容:

用的是symfony框架,我从后台传递两个值到twig中,然后再想赋值到asset()里面,我该怎么做?控制器传递值的代码如下:

<code>return $this->render("AcmeMinsuBundle:Default:advsImage.html.twig",
                array('pagination' => $pagination,'cfgImagePath' => $cfgImagePath)
            );</code>

twig代码如下:

<code>{% for paginations in pagination  %}
    <ul>
        <li>
            <div><img  src="%7B%7B%20asset('%7B%7B%20cfgImagePath%20%7D%7D%7B%7B%20paginations.getAdvsImagePath%20%7D%7D')%20%7D%7D" alt="关于symfony传递值和twig里面的asset的问题" ></div>
        </li>
    </ul>
{% endfor %}</code>

我知道以上方法是不行的,那cfgImagePath和paginations.getAdvsImagePath这两个变量组合起来是一个图片的路径,我改怎么传递值或者写twig里面的代码才实现呢。刚开始用symfony,很多都不是很懂,忘各位不吝赐教。

短答案:你需要用"~"操作符(详见Twig文档)

长答案:

你需要把图片标签改成下边这样:

<code><img  src="%7B%7B%20asset(cfgImagePath%20~%20paginations.getAdvsImagePath)%20%7D%7D" alt="关于symfony传递值和twig里面的asset的问题" ></code>

解释:

  1. "{{ }}"不能进行嵌套

  2. 把两个或多个变量、字符串连接起来,用"~"操作符,相当于PHP的"."操作符

  3. assettwig的一个函数,传入的变量是给函数用的,而不是输出给HTML的,此处不应有引号

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn