2012-03-24 24 views
7

我正在使用新的CakePHP 2.1,並希望使用JsonView使我的控制器響應客戶端上由JQuery創建的ajax請求。但是這應該根據文檔使用JsonView自動完成。Cakephp JsonView

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

我加入這行我routes.php文件文件

Router::parseExtensions('json');

在我的控制,我有

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

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

然後認爲應該是過時的,但是當我打電話給他,他仍然提供了一個指向失蹤觀點的頁面。

+0

@BenjaminAllison:這個問題在2周前從WebApps.SE遷移過來。我的評論現在無關緊要,我正在刪除它。 – dnbrv 2012-04-04 11:38:33

+1

也作爲參考,我認爲它應該是'$ this-> set('_ serialize',array('bookings'));'以避免多個根(請參閱這篇文章的更新文檔) – mark 2012-04-27 08:03:45

+1

我不確定但我認爲缺少一些東西 - > Controller中的屬性$ viewClass。 http://book.cakephp.org/2.0/en/appendices/new-features-in-cakephp-2-1.html#jsonview – raultm 2012-07-09 12:14:24

回答

5

你用application/json頭文件發出請求嗎?

嘗試向/controller/method.json發出請求這應該強制該視圖。如果這樣做,那麼你的頭可能沒有設置正確。

1

你在/views/controller_name/json/action.ctp裏面創建了視圖文件嗎?