在 TWIG 中使用 PHP 函数?

发布于 2024-12-16 10:54:31 字数 311 浏览 1 评论 0原文

在 PHP 模板中,我可以使用 php 函数,例如:

foreach ($users as $user){
  echo someFunction($user->getName());
}

How can I make it in TWIG?

{% for user in users %}
    * {{ user.name }}
{% else %}
    No user have been found.
{% endfor %}

我该如何实现这一目标?

In PHP templates I can use php functions, for example:

foreach ($users as $user){
  echo someFunction($user->getName());
}

How can I make it in TWIG?

{% for user in users %}
    * {{ user.name }}
{% else %}
    No user have been found.
{% endfor %}

How do I achieve this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

走野 2024-12-23 10:54:31

您需要的是 函数过滤器。您可以使用示例轻松添加这些内容。

What you need are functions or filters. You can easily add these using the examples.

回忆追雨的时光 2024-12-23 10:54:31
// $twig is a Twig_Environment instance.

$twig->registerUndefinedFunctionCallback(function($name) {
    if (function_exists($name)) {
        return new Twig_SimpleFunction($name, function() use($name) {
            return call_user_func_array($name, func_get_args());
        });
    }
    throw new \RuntimeException(sprintf('Function %s not found', $name));
});

在树枝模板中:

{{ explode(",", "It's raining, cats and dogs.").0 | raw }}

这将输出“正在下雨”。默认情况下,返回值在 Twig 中进行转义。

Twig_SimpleFunction 是首选使用的类。自 1.12 起,Twig 中所有其他与函数相关的类均已弃用(将在 2.0 中删除)。

在 Symfony2 控制器中:

$twig = $this->get('twig');
// $twig is a Twig_Environment instance.

$twig->registerUndefinedFunctionCallback(function($name) {
    if (function_exists($name)) {
        return new Twig_SimpleFunction($name, function() use($name) {
            return call_user_func_array($name, func_get_args());
        });
    }
    throw new \RuntimeException(sprintf('Function %s not found', $name));
});

In a twig template:

{{ explode(",", "It's raining, cats and dogs.").0 | raw }}

this will output "It's raining". By default, returned values are escaped in Twig.

Twig_SimpleFunction is the preferred class to use. All other function related classes in Twig are deprecated since 1.12 (to be removed in 2.0).

In a Symfony2 controller:

$twig = $this->get('twig');
计㈡愣 2024-12-23 10:54:31

已经有一个 Twig 扩展可以让您从 Twig 模板中调用 PHP 函数,例如:

Hi, I am unique: {{ uniqid() }}.

And {{ floor(7.7) }} is floor of 7.7.

请参阅官方 扩展存储库< /a>.

There is already a Twig extension that lets you call PHP functions form your Twig templates like:

Hi, I am unique: {{ uniqid() }}.

And {{ floor(7.7) }} is floor of 7.7.

See official extension repository.

注定孤独终老 2024-12-23 10:54:31

如果您使用 symfony 2,这也应该有帮助。概念是相同的,但是您将代码放在其他地方并且格式略有不同。

http://symfony.com/doc/2.0/cookbook/template/twig_extension.html

If you're working in symfony 2 this should also help. Concept is the same but you put the code somewhere else and format it a little differently.

http://symfony.com/doc/2.0/cookbook/templating/twig_extension.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文