Twig表单主题和DependencyInjection

时间:2018-02-27 12:35:46

标签: symfony twig

我想分开我的Symfony包。 我在SymfonyFormFontAwesomeBundle剧目中创建了DependencyInjection ExtensionClass

SymfonyFormFontAwesomeExtension

class SymfonyFormFontAwesomeExtension extends Extension
{
    public function load(array $configs, ContainerBuilder $container): void
    {
        $loader = new YamlFileLoader(
            $container,
            new FileLocator(__DIR__.'/../Resources/config')
        );
        $loader->load('services.yaml');

        $this->loadTwigTheme($container);
    }

    private function loadTwigTheme(ContainerBuilder $container)
    {
        if (!$container->hasParameter('twig.form.resources')) {
            return;
        }

        $container->setParameter('twig.form.resources', array_merge(
            [
                'SymfonyFormFontAwesomeBundle::theme.html.twig'
            ],
            $container->getParameter('twig.form.resources')
        ));
    }
}

但Symfony在我的项目中搜索主题(不在我的包中):

  

无法找到模板“SymfonyFormFontAwesomeBundle :: theme.html.twig”(查看:/ var / www / symfony / Project / templates,/ var / www / symfony / Project / templates,/ var / www / symfony /项目/供应商/ symfony的/嫩枝桥/资源/视图/表格)。

我想加载我的捆绑包中的“theme.html.twig”文件。

你能帮帮我吗? :)

1 个答案:

答案 0 :(得分:0)

我怀疑你使用的是Symfony4,而你使用的代码看起来像Symfony 2代码。由于Symfony 3(.2?),Twig不再使用Templating组件,因此可能会有变化。

我建议你做两次修改:

  • 而不是设置twig.form.resources,请使用配置选项twig.form_themes的参数,您可以从捆绑扩展中轻松修改参数
  • 使用@SymfonyFormFontAwesome::theme.html.twig语法,否则SF4会查看templates/