无法在 Symfony 4 中创建 Twig 全局变量
Unable to create Twig Global Variable in Symfony 4
我已经使用 Symfony 3.3 完成了它,但是使用 Symfony 4 它不起作用。
App\Twig\NotifExt:
public function getGlobals(){
$count = 'Hello World';
return array('count' => $count);
}
twig_extensions.yaml:
twig:
globals:
'count': '%count%'
base.html.twig:
<a class="nav-item nav-link" href="#">{{ count }} </a>
我在以前的版本中做过类似的事情并且运行良好,但是对于 Symfony 4 我遇到了以下错误:
You have requested a non-existent parameter "count".
第一步是从 twig 全局变量中定义的 count
变量中删除单引号。
在您的问题中,您似乎使用参数定义了 count
键,但要使用服务 (class),请阅读 How to Inject Variables into all Templates (i.e. global Variables):
twig:
globals:
yourService: '@App\YourService\Class'
然后引用服务方法获取count
键:
{{ yourService.getCount() }}
你有很多方法可以做到这一点,但你可以尝试这个简单的例子来获得更多想法。
如果问题没有解决,您可能需要升级您的问题,提供有关如何设置 count
键的更多详细信息。
PS:你清缓存了吗?
我在检查类似问题时发现了其他东西 - 这可能对某些人有帮助。
如果您渲染单个块(使用 $twig->renderBlock()
)而不是进行完整渲染,则全局变量不会自动合并,因此您需要执行以下操作:
$context = $this->twig->mergeGlobals($parameters);
$body = $template->renderBlock('body', $context);
更多信息:
https://github.com/symfony/symfony/issues/8517#issuecomment-21238584
我已经使用 Symfony 3.3 完成了它,但是使用 Symfony 4 它不起作用。
App\Twig\NotifExt:
public function getGlobals(){
$count = 'Hello World';
return array('count' => $count);
}
twig_extensions.yaml:
twig:
globals:
'count': '%count%'
base.html.twig:
<a class="nav-item nav-link" href="#">{{ count }} </a>
我在以前的版本中做过类似的事情并且运行良好,但是对于 Symfony 4 我遇到了以下错误:
You have requested a non-existent parameter "count".
第一步是从 twig 全局变量中定义的 count
变量中删除单引号。
在您的问题中,您似乎使用参数定义了 count
键,但要使用服务 (class),请阅读 How to Inject Variables into all Templates (i.e. global Variables):
twig:
globals:
yourService: '@App\YourService\Class'
然后引用服务方法获取count
键:
{{ yourService.getCount() }}
你有很多方法可以做到这一点,但你可以尝试这个简单的例子来获得更多想法。
如果问题没有解决,您可能需要升级您的问题,提供有关如何设置 count
键的更多详细信息。
PS:你清缓存了吗?
我在检查类似问题时发现了其他东西 - 这可能对某些人有帮助。
如果您渲染单个块(使用 $twig->renderBlock()
)而不是进行完整渲染,则全局变量不会自动合并,因此您需要执行以下操作:
$context = $this->twig->mergeGlobals($parameters);
$body = $template->renderBlock('body', $context);
更多信息: https://github.com/symfony/symfony/issues/8517#issuecomment-21238584