gpt4 book ai didi

php - 在 Controller 内调用 Twig 截断过滤器

转载 作者:可可西里 更新时间:2023-11-01 12:30:18 31 4
gpt4 key购买 nike

我需要在 Controller 中使用 twig truncate 过滤器。我不使用 Twig 模板,因为我的 Controller 只返回一个 json 对象。

来自Twig Text extension源,我看到过滤器函数是 twig_truncate_filter,所以我尝试将扩展作为服务并在我的 Controller 中调用它的过滤器函数:

$something = "a long character string that need to be truncated";
$twigText = $this->get("twig.extension.text");
$twig = $this->get("twig");
$truncatedValue = $twigText->twig_truncate_filter($twig,$something)

它给我一个 fatal error :Call to undefined method Twig_Extensions_Extension_Text::twig_truncate_filter()

如何直接在我的 Controller 中使用过滤器功能?

最佳答案

可能有更短的方法,但以下方法对我有用:

$filters = $this->get('twig.extension.text')->getFilters();
$callable = $filters['truncate']->getCallable();

$truncated = $callable($this->get('twig'), $str));

对于 Twig Extensions > 1.3 你可以使用这个

$filters = $this->get('twig.extension.text')->getFilters();
$key = array_search('truncate', array_map(function(TwigFilter $filter) { return $filter->getName(); }, $filters), true);
$callable = $filters[$key]->getCallable();

$truncated = $callable($this->get('twig'), $str));

关于php - 在 Controller 内调用 Twig 截断过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24014654/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com