views:

116

answers:

1

say i want to attach errors to my Zend_Form i found out the default decorators for forms do not include errors. so i tried adding my own ...

in my Zend_Form class

$this->setDecorators(array(
    'FormElements',
    array('Errors', array('placement' => 'PREPEND')),
    'Form'
));

but if there are no form errors, i get

Warning: htmlspecialchars() expects parameter 1 to be string, array given in D:\ResourceLibrary\Frameworks\ZendFramework\library\Zend\View\Abstract.php on line 897

am i doing the right thing? removing the line array('Errors', array('placement' => 'PREPEND')) fixes it, but why? if there are errors, it renders correctly without that error

UPDATE

the error seems to come from ~line 53 of Zend_Form_Decorator_Errors

$errors = $element->getMessages();

for forms i think it shld be

$errors = $element->getErrorMessages();
A: 

try:

$this->setDecorators(array(
    'FormElements',
    array('FormErrors', array('placement' => 'PREPEND')),
    'Form'
));
Ololo
that worked. even without `addPrefixPath()` whats `addPrefixPath()` for actually? and for the 2nd param `$path`, is the path relative to my form class? or what?
jiewmeng
This is native decorator so you can use it as is - without any addPrefixPath calls
Ololo