通过包含在twig和slim框架中传递字符串变量

时间:2015-10-08 18:31:06

标签: twig slim

我正在使用Slim Framework和Twig。

我想通过使用partials来应用DRY。我有一个表单,可以在几个视图中重复使用不同的变量,如标题和路由(url)名称。

我正在努力研究如何使用url名称。

例如,在视图中使用带有参数的'urlFor'帮助器的链接如下:

<a href="{{urlFor('route.name', {parameter: value})}}">The link</a>

这就是我想传递给部分模板的链接,因为它在每个视图中都不同,我想使用部分表单。我尝试了几种方法,但它不起作用。我不知道如何传递包含'的字符串。

例如,我在父视图中尝试过这样的部分调用,如下所示:

{% include 'partials/partial.php' with {'theUrl': "urlFor('route.name', {parameter: value})"} %}

在这样的局部内部:

<a href="{{theUrl}}">Show more</a>

它不起作用,因为在浏览器的url中我看到以下内容:

http://myproject.dev/pages/urlFor('route.name',%20%7Bparameter:%201%7D)

看起来它没有被正确转义。在使用urlFor()传递路径名时如何解决此问题?

1 个答案:

答案 0 :(得分:5)

没有最大的测试可能性我认为我发现了问题。您只是在字符串中添加函数,并且不会为解析器提供解决方法的机会,因为它基本上只是一个字符串。

{% include 'partials/partial.php' with {'theUrl': "urlFor('route.name',{parameter: value})"} %}

应该是

{% include 'partials/partial.php' with {'theUrl': urlFor('route.name',{parameter: value})} %}