-1

我正在使用 Symfony 模板组件向我正在处理的项目添加模板功能,我正在关注这里的文档,但我正在使用服务容器 Symfony 组件并使用以下代码在文档中添加代码:

$containerBuilder->register('template_name_parser', Symfony\Component\Templating\TemplateNameParser::class);
$containerBuilder->register('file_system_loader', Symfony\Component\Templating\Loader\FilesystemLoader::class)
    ->setArguments([realpath('./') . '/app/Views/%name%']);
$containerBuilder->register('templating', Symfony\Component\Templating\PhpEngine::class)
    ->setArguments([new Reference('template_name_parser'), new Reference('file_system_loader')]);

但是当我尝试使用此代码加载模板文件时:

container->get('templating')->render('home.php')

我收到此错误:

出问题了!(您请求了一个不存在的参数“名称”。)

4

1 回答 1

1

因此,正如@yceruto 提到的,Symfony DI 会将它们之间的字符串%%视为参数,因此为了逃避它,我们需要在此处%提到的这些字符串前面添加,所以我更新了我的代码,如下所示:

$containerBuilder->register('file_system_loader', Symfony\Component\Templating\Loader\FilesystemLoader::class)
->setArguments([realpath('./') . '/app/Views/%%name%']);
于 2019-01-23T18:39:09.730 回答