2010-07-29 26 views
10

Tôi có một Controller mà tôi muốn sử dụng cho các script ajax để gọi và thiết lập các biến session, lấy thông tin, vv Làm thế nào để thiết lập nó sao cho bộ điều khiển cụ thể không sử dụng bố trí mặc định (cụ thể là không có bố trí) để nó có thể gửi tin nhắn XML/JSON qua lại?Zend Framework - Đặt No Layout cho Controller

Trả lời

15

Giống như bất cứ điều gì để làm với Zend_Framework và Zend_Application, có nhiều cách để làm điều này, nhưng trên vài gigs Zend tinh khiết cuối cùng tôi đã làm, tôi đã thấy những người sử dụng những điều sau đây (từ một phương pháp hành động trong bộ điều khiển của bạn)

$this->_helper->layout()->disableLayout(); 

Điều này sẽ tắt bố trí. Nếu bạn muốn tắt chế độ xem của mình, bạn có thể sử dụng

$this->_helper->viewRenderer->setNoRender(true); 

một lần nữa, từ phương thức hành động trong bộ điều khiển.

2

Trong hành động điều khiển của bạn, hãy thử

$this->_helper->layout->disableLayout(); 
6

trong điều khiển của bạn ...

public function init() { 
    if ($this->getRequest()->isXmlHttpRequest()) { 
     // no Layout 
     $this->_helper->layout()->disableLayout(); 
     // no views 
     $this->_helper->viewRenderer->setNoRender(true); 
    } 
}