通过 include in twig 和 slim 框架传递字符串变量

Passing string variables through include in twig and slim framework

我正在使用 Slim Framework 和 Twig。

我想通过使用部分来应用 DRY。我有一个在多个视图中重复使用的表单,其中包含不同的变量,例如标题和路线 (url) 名称。

我正在努力研究如何让它在 url 名称上工作。

例如,有一个 link 在视图中使用 ´urlFor´ 助手,参数如下:

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

这就是我想传递给部分模板的 link 因为每个视图都不同,所以我想使用部分形式。我尝试了几种方法,但没有用。我不知道如何传递这个包含 ' 的字符串 inside.

例如,我在 parent 视图中试过这样的局部调用:

{% 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() 传递路由名称时,有什么办法可以解决这个问题吗?

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

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

应该是

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