首页 > 解决方案 > 了解如何在 Symfony 2.7 中引用模板

问题描述

我创建了一个自定义模板,我试图从控制器呈现。我已将模板放入src/MyCompany/AppBundle/Contact/contact.html.twig并使用此行尝试将其引入:

    return $this->render('AppBundle:Contact:contact.html.twig', array(
        'form' => $form->createView()
    ));

但是在加载控制器时我得到了这个 InvalidArgumentException:

找不到模板“AppBundle:Contact:contact.html.twig”(查看:/usr/src/app/app/Resources/views、/usr/src/app/vendor/symfony/symfony/src/Symfony/Bridge /Twig/Resources/views/Form,/usr/src/app/vendor/knplabs/knp-menu/src/Knp/Menu/Resources/views)。

有没有一种简单的方法来找出我应该如何引用这个模板?

标签: phpsymfonycontrollertwig

解决方案


默认情况下,Symfony 会在Resources/views你的包目录中查找模板。如果您需要自定义路径src/MyCompany/AppBundle/Contact,则必须在 config.yml 的 twig 配置中手动注册它:

twig:
     # ...
     paths:
        '%kernel.root_dir%/src/MyCompany/AppBundle/Contact': contact_path

然后像这样使用它:

return $this->render('contact_path:contact.html.twig', array(
    'form' => $form->createView()
));

文档在这里


推荐阅读