2012-06-05 30 views
11

Tôi đã có một cái gì đó như thế này cho cấu trúc thư mục của tôi bên trong một module:Làm thế nào để Zend Framework 2 render partials bên trong một mô-đun?

Api 
├── Module.php 
├── config 
│   └── module.config.php 
├── src 
│   └── (..etc ..) 
└── view 
    ├── api 
    │   └── api 
    │    └── index.phtml 
    └── partial 
        └── test.phtml 

Sau đó, tôi đang làm điều này:

<?= $this->partial('partial/test.pthml', array()); ?> 

Tuy nhiên, tôi nhận được:

05-Jun-2012 14:56:58] PHP Fatal error: Uncaught exception 'Zend\View\Exception\RuntimeException' with message 'Zend\View\Renderer\PhpRenderer::render: Unable to render template "partial/test.pthml"; resolver could not resolve to a file' in /Users/jeff/web/n/vendor/zendframework/zendframework/library/Zend/View/Renderer/PhpRenderer.php:463

Trường hợp nên partials của tôi đi?

+1

cấu trúc thư mục của bạn này là đúng và xem helper một phần của bạn được thiết lập một cách chính xác. Chỉ cần chắc chắn rằng bạn có ''template_path_stack' => array ('user' => __DIR__. '/../ view')' được thêm vào tập tin 'module.config.php' của bạn và bạn nên tốt. –

Trả lời

21

này có thể đạt được bằng cách

echo $this->partial('layout/header', array('vr' => 'zf2')); 

bạn có thể truy cập vào biến theo quan điểm sử dụng

echo $this->vr; 

đừng quên để thêm dòng sau đây vào view_manager của bạn của tệp tin module.config.php.

'layout/header'   => __DIR__ . '/../view/layout/header.phtml', 

sau khi thêm nó trông giống như

return array( 

'view_manager' => array(
     'template_path_stack' => array(
      'user' => __DIR__ . '/../view' , 
     ), 
     'display_not_found_reason' => true, 
     'display_exceptions'  => true, 
     'doctype'     => 'HTML5', 
     'not_found_template'  => 'error/404', 
     'exception_template'  => 'error/index', 
     'template_map' => array(
      'layout/layout'   => __DIR__ . '/../view/layout/layout.phtml', 

      'layout/header'   => __DIR__ . '/../view/layout/header.phtml',    

      'error/404'    => __DIR__ . '/../view/error/404.phtml', 
      'error/index'    => __DIR__ . '/../view/error/index.phtml', 
     ), 


    ),  

); 
+0

Trong mô-đun của tôi, tôi sử dụng như sau: $ this-> partial ('{module}/{controller}/{filename} .phtml', mảng ('var_name_in_partial' => $ data)); –

+0

Ước gì tôi có thể bỏ phiếu hai lần. Lời giải thích thực sự tốt đẹp. –

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