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

Pat*_*ros 2 slim twig

我正在使用Slim Framework和Twig.

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

我正在努力如何使其在URL名称上工作.

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

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

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

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

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

在里面的部分像这样:

<a href="{{theUrl}}">Show more</a>
Run Code Online (Sandbox Code Playgroud)

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

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

看起来它没有正确转义.有什么想法如何通过路由名称来解决这个问题urlFor()

mrh*_*rhn 5

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

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

应该

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