2012-03-24 37 views
7

Tôi đang sử dụng CakePHP mới 2.1 và muốn sử dụng JsonView để làm cho trình điều khiển của tôi phản hồi trên một yêu cầu ajax được tạo bởi JQuery ở phía máy khách. Tuy nhiên điều này nên được thực hiện tự động với JsonView theo tài liệu.CakePHP JsonView

http://book.cakephp.org/2.0/en/views/json-and-xml-views.html

tôi đã thêm dòng này trong tập tin routes.php tôi

Router::parseExtensions('json');

Và trong điều khiển của tôi tôi có

$this->RequestHandler->setContent('json', 'application/json'); 
$bookings = $this->Bookings->find('all'); 

$this->set('bookings', $bookings); 
$this->set('_serialize', 'bookings'); 

Sau đó, quan điểm nên lỗi thời, nhưng khi tôi gọi điều này, anh ta vẫn phục vụ một trang đang trỏ đến một cái nhìn mất tích.

+0

@BenjaminAllison: Câu hỏi này đã được di chuyển từ WebApps.SE gần 2 tuần trước. Nhận xét của tôi hiện không liên quan và tôi đang xóa nó. – dnbrv

+1

cũng, để tham khảo, tôi nghĩ rằng nó nên là '$ this-> set ('_ serialize', mảng ('đặt chỗ'));' để tránh nhiều rễ (xem tài liệu cập nhật trên trang này) – mark

+1

Tôi không chắc chắn nhưng tôi nghĩ rằng một cái gì đó là mất tích -> thuộc tính $ viewClass trong Controller. http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-1.html#jsonview – raultm

Trả lời

5

Bạn có yêu cầu với tiêu đề ứng dụng/json không?

Thử thực hiện yêu cầu đến /controller/method.json Điều này sẽ buộc chế độ xem. Nếu điều đó làm việc thì tiêu đề của bạn có thể không được đặt đúng.

1

Bạn đã tạo tệp xem bên trong /views/controller_name/json/action.ctp chưa?