Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Get error messages from Zend_Form and response as json

I'm trying to get error messages from Zend_Form and response as json. What is the best practice of getting Zend_Form errors and replying as json?

<?

class SomeController extends Zend_Controller_Action {

    public function indexAction() {

        $form = new Application_SomeForm();
        if ($form->isValid( $this->getRequest()->getPost() )) {
            //do something here
        }       
        $this->_helper->json($form->getErrorMessages());

    }

}

I can't get errors via $form->getErrorMessages(), but errors are present if tested print_r($form->gerErrors())

Array
(
    [email] => Array
        (
            [0] => isEmpty
        )

    [password] => Array
        (
            [0] => isEmpty
        )

    [foreign] => Array
        (
        )

    [login] => Array
        (
        )

)

So, my questions are:

a) How to get all error messages for form?

b) Is there any Json Wrapper for resposning ajax submitted forms? For example $jsonResponse->setErrorStatus()->addFormErrors($form)

like image 395
Kirzilla Avatar asked Jul 31 '12 11:07

Kirzilla


1 Answers

Have you tried getMessages? I think this is the method you'd like to use to get human-friendly error messages.

You wrote you've tried getErrorMessages and getErrors, but getMessages is a different beast altogether, that's why I'm asking whether you've tried it.

getErrors returns codes, getErrorMessages returns registered custom error messages (seems probable you have none), while getMessages returns the actual human-friendly error messages.

like image 150
bububaba Avatar answered Oct 16 '22 16:10

bububaba