Problem: When rendering an action's view script from a different action, the
view variables that normally would exist are never initialized.

For example, indexAction creates a form it's view script and at least one
other variable for the view:
public function indexAction()
    {
        $this->view->runs = array();

        $contactForm = $this->_getContactForm();
        $this->view->contactForm = $contactForm;

        $dbAdapter = $this->getInvokeArg('bootstrap')->getResource('db');
        $runGateway = new Model_RunGateway(array('dbAdapter' =>
$dbAdapter));
        $runs = array();
        $runs = $runGateway->getRuns();

        $this->view->runs = $runs; // Will be lost if another action calls
$this->render('index')
    }

The form's action is contactprocessAction() ('/index/contactprocess/'). The
form is submitted and is not valid. I can assign the $form to a view
variable and render the original 'index' view.

    public function contactprocessAction()
    {
        $this->view->valid = false;
        $request = $this->getRequest();
        $form = $this->_getContactForm();

        if (!$form->isValid($request->getPost())) {
            $this->view->contactForm = $form; // $this->contactForm is in
the view, but no other vars are.
            return $this->render('index');
        }
    }

But, the other view variables that would normally be created when
indexAction is called, do not get created.

What do you think is the best way to deal with this?

Reply via email to