symfony 4 base twig方法覆盖
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了symfony 4 base twig方法覆盖相关的知识,希望对你有一定的参考价值。
如何在启用autowire时覆盖twig的path()方法?例如:
class ExampleRoutingExtension extends RoutingExtension
{
public function getPath($name, $parameters = array(), $relative = false)
{
return '/testEndpoint';
}
}
使用此类进行自动装配没有问题(构造函数创建对象),但getPath()方法不会覆盖父getPath()
答案
创建您的Twig扩展:
class AppExtension extends Twig_Extension
{
public function getFunctions(): array
{
return [
new Twig_SimpleFunction('path', [$this, 'path']),
];
}
public function path(string $name, array $parameters = array(), bool $relative = false): string
{
return '/testEndpoint';
}
}
并通过services.yml启用:
AppTwigYourExtension:
tags:
- { name: twig.extension }
您可以在__construct()
中注入服务(例如:路由)
以上是关于symfony 4 base twig方法覆盖的主要内容,如果未能解决你的问题,请参考以下文章
在 Heroku 上部署 Symfony5/php7 应用程序时找不到模板“base.html.twig”错误消息
Symfony 3 - 模板“SonataPageBundle::base_error.html.twig”上的块“标题”不存在