Gracias GatorV. Lo traté y no me salio. Lo que hice fue
/reports/models/ExtraValidate.php
Código PHP:
Ver original<?php
class Reports_Model_ExtraValidate extends Zend_Validate_Abstract
{
const REQUIRED = 'required';
protected $_messageTemplates = array( self::REQUIRED => 'Valor no puede estar vacio'
);
public function isValid($value, $context = null)
{
if (isset($context['foo']) && empty($context['foo'])) { $this->_error(self::REQUIRED);
return false;
}
}
return true;
}
}
En el formulario hice esto
Código PHP:
Ver original// create select input for foo
$foo = new Zend_Form_Element_Select('foo');
$foo->setLabel('Foo:')
->setDecorators(
'Errors',
'ViewHelper',
)
)
->addValidator(new Reports_Model_ExtraValidate())
->setOptions(array('tabindex'=>$n++)); ''=>'[Selecciona uno]',
1=>'Foo',
2=>'Bar'
),
3=>'Baz',
4=>'Candy',
5=>'Fruits'
),
);
$foo->addMultiOptions($fooArray);
En el controller solo tengo
Código PHP:
Ver originalpublic function indexAction()
{
$form = new Reports_Form_Foo;
$form->setAction('/reports/foo/index');
$this->view->form = $form;
if($this->getRequest()->isPost()){
if($form->isValid($this->getRequest()->getPost())){
$form = $form->getValues();
.......
}
}
}
Le trate de colocar a ver si reconocía el validator y no lo hace, le coloqué un exit al principio de isValid
Código PHP:
Ver originalpublic function isValid($value, $context = null)
{
...............
Y no se detuvo. ¿Me falta algo más? No me da error y siempre pasa la validación.