Hi,
there is another possible solution, in your controller init() methos
$this->getRequest()->setParam('format','json');
Hope it helps
Cheers
Sergio Rinaudo
> Date: Mon, 7 Mar 2011 08:33:49 -0600
> From: [email protected]
> To: [email protected]
> CC: [email protected]
> Subject: Re: [fw-general] how to use json action context?
>
> Well, I wasn't expecting that code response Kizano. It's almost
> verbatim to what I did as a quick work around. How dare you peek at my
> code :-P
>
> Thanks for both yours and Hector's responses. They were both helpful
> and provided enough info that I can work the rest of it out.
>
> Thanks!
> -Tim
>
> On Mon, Mar 7, 2011 at 12:25 AM, Markizano Draconus
> <[email protected]> wrote:
> > Hey Tim,
> >
> > You could add something to disable the layout and set the proper headers:
> > In the controller, under init() or the action you want to execute:
> >
> >
> > $this->_helper->layout->disableLayout();
> > $this->_response->setHeader('Content-Type', 'application/json');
> > $this->view->json = array(
> > 'status' => 'ok',
> > 'message' => 'This is a status message.',
> > );
> >
> >
> > In application/scripts/view/index/index.phtml (or wherever your view scripts
> > are):
> >
> > <?php print $this->json; ?>
> >
> > It's probably looking for error.phtml because it's missing the view scripts
> > for the error controller to render the HTML for the error and exceptions.
> > Try adding that and your debugging might be made a bit easier ;)
> >
> >
> > Hope this helps,
> > -Kizano
> > //-----
> > Information Security
> > eMail: [email protected]
> > http://www.markizano.net/
> >
> > On 03/06/2011 10:49 PM, Tim wrote:
> >>
> >> I can't seem to get my controllers to recognize that I only want them
> >> to display json. Here's my controller
> >>
> >> <?php
> >>
> >> class IndexController extends Zend_Controller_Action {
> >> public function init() {
> >> $this->_helper->contextSwitch()
> >> ->clearContexts()
> >> ->clearActionContexts()
> >> ->setDefaultContext('json')
> >> ->initContext('json');
> >> }
> >>
> >> public function indexAction() {
> >> $this->view->assign(array(
> >> 'status' => 'ok',
> >> 'message' => 'This is the index action'
> >> ));
> >> }
> >> }
> >>
> >> ?>
> >>
> >>
> >> All I want to do is, by default, output everything as json. I don't
> >> want to have to send a "format=json" parameter in the URL.
> >>
> >> According to
> >> http://framework.zend.com/manual/en/zend.controller.actionhelpers.html
> >> I should be able to do this, but the above controller results in the
> >> error
> >>
> >> Fatal error: Uncaught exception 'Zend_View_Exception' with message
> >> 'script 'error/error.phtml' not found in path
> >>
> >> What am I missing?
> >>
> >> Thanks,
> >> Tim
> >