2012-03-24 61 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里面创建了视图文件吗?