我想在我的所有变量上默认应用过滤器,以避免这种情况:
{% set var = "%gg% man" %}
{% block body %}
<h1>You are a {{ var|replace({'%gg%':good, '%bb%':bad}) }}</h1>
{% block body %}
输出: 你是个好人
有解决方案吗?
答案 0 :(得分:0)
您可以创建过滤树枝。
// src/AppBundle/Twig/AppExtension.php
namespace AppBundle\Twig;
class AppExtension extends \Twig_Extension
{
public function getFilters()
{
return array(
new \Twig_SimpleFilter('customReplace', array($this, 'customReplaceFilter')),
);
}
public function customReplaceFilter(yourArguments)
{
//do your replace here in PHP
return [your string after replace];
}
public function getName()
{
return 'app_extension';
}
}
在你的树枝上
{{ var|customReplace(yourArguments) }}
不要忘记你的app / config / services.yml:
services:
app.twig_extension:
class: AppBundle\Twig\AppExtension
public: false
tags:
- { name: twig.extension }