I'm using the new CakePHP 2.1 and would like to use the JsonView to make my controller respond to an AJAX request created by jQuery on the client side.
However, this should be done automatically with the JsonView according to the documentation.
http://book.cakephp.org/2.0/en/views/json-and-xml-views.html
I added this line in my routes.php file
Router::parseExtensions('json');
And in my controller I have
$this->RequestHandler->setContent('json', 'application/json' );
$bookings = $this->Bookings->find('all');
$this->set('bookings', $bookings);
$this->set('_serialize', 'bookings');
Then the view should be obsolete, but when I call this, it still serves a page which is pointing to a missing view.
Does the url you are calling ends on '.json'?
I had some issues with Cake wanting me to explicitly set the json view. The XML view loaded fine by default just not json.
I did the following in my API function:
if($this->RequestHandler->ext == 'json') {
$this->autoRender = false;
echo json_encode($results);
} else if($this->RequestHandler->ext == 'xml') {
$this->set(array(
'results' => $results,
'_serialize' => array('results')
));
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With