2012-08-24 27 views
16

Cách hiển thị chế độ xem khác với mặc định trong tác vụ bộ điều khiển. theo mặc định, nó cố gắng tìm cùng một chế độ xem như là hành động trong thư mục xem nhưng tôi muốn hiển thị chế độ xem khác nhau có sẵn trong thư mục lượt xem cho hành động của người kiểm soát.Cách hiển thị chế độ xem khác trong hành động điều khiển của ZF2

Chúng ta có thể làm được điều này ZF1 như thế này $this->_helper->viewRenderer('foo');

Bất cứ ai cũng có thể biết, làm thế nào để đạt được nêu trên trong ZendFramework 2?

Chúng ta có thể vô hiệu hóa các quan điểm sử dụng

$response = $this->getResponse(); 
     $response->setStatusCode(200); 
     $response->setContent("Hello World"); 
     return $response; 

Tôi không biết làm thế nào để thay đổi/render một cái nhìn khác nhau trong zf2.

Trả lời

44

có thể được thực hiện bằng

public function abcAction() 
{ 
    $view = new ViewModel(array('variable'=>$value)); 
    $view->setTemplate('module/controler/action.phtml'); // path to phtml file under view folder 
    return $view; 
} 

Nhờ akrabat cho bao gồm hầu hết các kịch bản.

+1

http: // zf2test.akrabat.com/ – Developer

+1

https://github.com/akrabat/ZF2TestApp/blob/master/module/Application/config/module.config.php#L78 – Developer

+0

+1, câu trả lời hoàn hảo !!! – SagarPPanchal

2

Giải pháp của tôi trong Zend Framewor 2 rất đơn giản. Đối với chỉ mục hành động tôi thích gọi parrent :: indexAction() btor của hàm tạo, chúng tôi mở rộng Zend \ Mvc \ Controller \ AbstractActionController. Hoặc chỉ mảng trả về() trong indexAction. ZF sẽ tự động trả về index.pthml whitout xác định những gì phải được trả về.

trở lại mới ViewManager() là như nhau trở lại mảng()

<?php 

namespace Test\Controller; 

use Zend\Mvc\Controller\AbstractActionController, 
    Zend\View\Model\ViewModel; 

// Or if u write Restful web service then use RestfulController 
// use Zend\Mvc\Controller\AbstractRestfulController 

class TestController extends AbstractActionController 
{ 
    /* 
    * Index action 
    * 
    * @return main index.phtml 
    */ 

    public function indexAction() 
    { 
      parent::indexAction(); 

      // or return new ViewModel(); 
      // or much simple return array(); 
    } 

    /* 
    * Add new comment 
    * 
    * @return addComment.phtml 
    */ 

    public function addAction() 
    { 
     $view = new ViewManager(); 
     $view->setTemplate('test/test/addComment.phtml'); // module/Test/view/test/test/ 

     return $view; 
    } 

Dont quên để cấu hình tuyến đường và view_manager trong mô-đun/config/module_config

'view_manager' => array(
     'template_path_stack' => array(
      'Test' => __DIR__ . '/../view', 
     ), 
    ), 
Các vấn đề liên quan