2012-01-18 3 views
11

Я подробно рассмотрел связанные с Symfony вопросы на этом сайте, но не могу найти ответ, который мне нужен.Как я могу найти путь к включению в Symfony2?

Я использую Symfony 2.0.9 с PHP 5.3.6 и моей структуры файла выглядит следующим образом:

src/ 
    Blog/ 
    TestBundle/ 
     Resources/ 
     views/ 
      Default/ 
      index.html.twig 
      header.html.twig 

Внутри index.html.twig у меня есть:

<div id="header"> 
{% include "BlogTestBundle:Resources:Default:header.html.twig" %} 
</div> 

It держит erroring с

Twig_error_loader: Не удалось найти шаблону

независимо от того, что я использую для пути. Почему он не находит файл? Они даже в одном каталоге!

Кто-нибудь знает, что я делаю неправильно?

+3

Вам следует отказаться от «Ресурсов» с пути. –

ответ

18

веточка файл включает в себя должны следовать ниже формат:

FullBundleName:ControllerName:filename 

Вы также можете вносить изменения в части, если они не присутствуют, то есть для всего файла в директории/пучка просмотров вы можете использовать FullBundleName::filename

Итак, в вашем случае используйте BlogTestBundle:Default:header.html.twig

+0

** Удивительный! ** Спасибо Inori - это действительно сработало. Я использовал 'BlogTestBundle: По умолчанию: header.html.twig' странно, что полный путь не работает. – varker

+0

У меня была такая же проблема, в моем случае я написал «BlogTestBundle: DEFAULT: header.html.twig» (эквивалент), он работал на моем компьютере разработки Windows, но код сломался на сервере развертывания, потому что Linux чувствителен к регистру , Просто что-то, чтобы смотреть! – Xocoatzin

+0

этот ответ правильный, но у меня также была следующая проблема: Я пытался включить файл, содержащий только макросы, поэтому я сначала назвал его с помощью расширения '.twig'', а не' '.html.twig'' , это не сработало. Похоже, что вы ** должны ** использовать расширение '.html.twig'', иначе файл не будет найден. – ShinDarth