2012-01-18 42 views
11

Tôi đã xem xét kỹ hơn các câu hỏi liên quan đến Symfony trên trang này nhưng không thể tìm thấy câu trả lời tôi cần.Làm thế nào tôi có thể tìm thấy đường dẫn đến một bao gồm trong Symfony2?

Tôi đang sử dụng Symfony 2.0.9 với PHP 5.3.6 và cấu trúc tập tin của tôi trông như thế này:

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

Bên trong index.html.twig tôi có:

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

Nó giữ erroring ra với

Twig_error_loader: Không thể tìm thấy mẫu

không có vấn đề gì tôi sử dụng cho đường dẫn. Tại sao nó không tìm thấy tập tin? Họ thậm chí trong cùng một thư mục!

Bất kỳ ai cũng biết tôi đang làm gì sai?

+3

Bạn nên thả "Tài nguyên" từ đường dẫn. –

Trả lời

18

tập cành lá bao gồm nên làm theo các định dạng sau:

FullBundleName:ControllerName:filename 

Bạn cũng có thể sửa đổi phần nếu họ không có mặt, tức là chỉ một file dưới một thư mục bó/views bạn có thể sử dụng FullBundleName::filename

Vì vậy, trong trường hợp của bạn, hãy sử dụng BlogTestBundle:Default:header.html.twig

+0

** Tuyệt vời! ** Cảm ơn Inori - điều này thực sự hiệu quả. Tôi đã sử dụng 'BlogTestBundle: Mặc định: header.html.twig' lạ rằng đường dẫn đầy đủ không hoạt động. – varker

+0

Tôi có cùng một vấn đề, trong trường hợp của mình, tôi đã viết 'BlogTestBundle: DEFAULT: header.html.twig' (tương đương), Nó hoạt động trên máy tính phát triển Windows của tôi, nhưng mã đã bị hỏng trên máy chủ triển khai vì Linux phân biệt chữ hoa chữ thường . Chỉ cần một cái gì đó để xem ra! – Xocoatzin

+0

câu trả lời này là chính xác nhưng tôi cũng có vấn đề sau: Tôi đã cố gắng bao gồm tệp chỉ chứa macro, vì vậy trước tiên tôi đặt tên tệp bằng cách sử dụng phần mở rộng '' .twig'' chứ không phải '' .html.twig'' , nó không hoạt động. Dường như bạn ** phải ** sử dụng phần mở rộng '' .html.twig'', nếu không tệp sẽ không được tìm thấy. – ShinDarth

Các vấn đề liên quan