Creo para el control que quieres usar, deberías de mejor crear un validador personalizado y agregarlo al elemento que quieras validar, de esa forma puedes mostrar el mensaje, ya que ahorita como lo tienes, solamente validas un array, y no esta "atado" a ningun elemento Zend Form como debería de estarlo, puedes extender el validador de Abstract para usarlo de la forma personalizado que quieres, por ejemplo:
Código PHP:
Ver original<?php
class My_Validate_Extra extends Zend_Validate_Abstract
{
const REQUIRED = 'required';
protected $_messageTemplates = array( self::REQUIRED => 'Element is required if set'
);
public function isValid($value, $context = null)
{
if (isset($context['foo']) && empty($context['foo'])) { return true;
}
$this->_error(self::REQUIRED);
return false;
}
return true;
}
}
Así se lo puedes anexar al elemento en concreto que necesites, y no tienes que hacer una doble validación o guardar el mensaje en una sesión.
Saludos.