【问题标题】:Twig form theme and DependencyInjectionTwig 表单主题和 DependencyInjection
【发布时间】:2018-02-27 12:35:45
【问题描述】:

我想分离我的 Symfony 包。 我在DependencyInjection repertory 中创建了SymfonyFormFontAwesomeBundleExtensionClass

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/twig-bridge/Resources/views/Form)。

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

你能帮帮我吗? :)

【问题讨论】:

标签: symfony twig


【解决方案1】:

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

我建议您进行 2 处修改:

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

【讨论】:

  • 谢谢!我的错误是添加了“Bundle”术语:“SymfonyFormFontAwesomeBundle::theme.html.twig”:)
猜你喜欢
  • 1970-01-01
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
  • 2012-08-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多