我正在使用Symfony
模板组件为我正在处理的项目添加模板功能,我正在遵循这里的文档,但我正在使用服务容器Symfony组件并使用以下代码在文档中添加代码:
$containerBuilder->register('template_name_parser', SymfonyComponentTemplatingTemplateNameParser::class);
$containerBuilder->register('file_system_loader', SymfonyComponentTemplatingLoaderFilesystemLoader::class)
->setArguments([realpath('./') . '/app/Views/%name%']);
$containerBuilder->register('templating', SymfonyComponentTemplatingPhpEngine::class)
->setArguments([new Reference('template_name_parser'), new Reference('file_system_loader')]);
但是当我尝试使用以下代码加载模板文件时:
container->get('templating')->render('home.php')
我收到此错误:
出事了!(您请求的参数不存在 "名称"。
正如@yceruto提到的,Symfony DI会将%%
之间的字符串视为参数,因此要转义它,我们需要在%
前面添加这些字符串,如此处所述,所以我像这样更新了我的代码:
$containerBuilder->register('file_system_loader', SymfonyComponentTemplatingLoaderFilesystemLoader::class)
->setArguments([realpath('./') . '/app/Views/%%name%']);