symfony - Symfony:无法加载 Twig 扩展运行时
问题描述
我正在按照本指南向 Symfony 4 项目添加自定义 Twig 扩展。
我App\Twig\AppExtension
的如下:
<?php
namespace App\Twig;
use Twig\Extension\AbstractExtension;
use Twig\TwigFunction;
class AppExtension extends AbstractExtension
{
public function getFunctions()
{
return [
new TwigFunction('getController', [AppRuntime::class, 'getController'])
];
}
}
我的App\Twig\AppRuntime
:
<?php
namespace App\Twig;
use Symfony\Component\HttpFoundation\RequestStack;
class AppRuntime
{
private $request;
public function __construct(RequestStack $requestStack)
{
$this->request = $requestStack->getCurrentRequest();
}
public function getController()
{
return $this->request->get('_controller');
}
}
但是如果我尝试getController()
在模板中使用函数,我会得到这个异常:
无法加载“App\Twig\AppRuntime”运行时。
Twig 模板中的以下行会产生此错误:
echo twig_escape_filter($this->env, $this->env->getRuntime('App\Twig\AppRuntime')->getController(), "html", null, true);
php bin/console debug:container
显示App\Twig\AppRuntime
为正确的服务。我也尝试过设置App\Twig\AppRuntime
为公共服务,但没有运气。
这里有什么问题?
解决方案
很可能您忘记标记您的树枝扩展服务。
在这里,您可以在第一个示例中解释如何执行此操作: https ://symfony.com/doc/current/service_container/tags.html
推荐阅读
- java - 我如何从 sqlite 和外键中检索数据
- python - 如何在 Reportlab Frame 中输入静态画布布局
- node.js - sshd:以编程方式连接时不会让我 cd 进入远程文件夹
- python - 我如何在 Python 中打印行(Sqlite3,Python)
- r - 如何将列表列表转换为数据框以进行导出?
- r - 将图例放入图表中
- reactjs - 来自 Laravel 护照 API 的 React 中的验证错误对象
- laravel - 试图获取非对象的属性“名称”(查看:C:\xampp\htdocs\COMPLIANCE-FAQ\resources\views\respones\show.blade.php)
- node.js - 模型中的猫鼬索引并不总是有效,但是当我重新启动 mongo 服务时它可以工作
- javascript - Jquery modals触发按钮位置