Неа.Когда вы делаете $form->validate($data)
или $form->populate($data)
- внутренне это просто
foreach($formElements as $element) {
$element->setDefault($newValue);
}
нет специальных внутренних флагов, таких как $form->_populationInProgress = true
u, вы не можете достичь этого легко, расширяя Zend_Form
class App_Form extends Zend_Form
{
protected $_ignoreDefaults = array();
public function addIgnoredDefaultsElement(Zend_Form_Element $el)
{
$this->_ignoreDefaults[$el->getName()] = true;
}
public function isInIgnoregDefaults($name)
{
return (bool)array_key_exists($name, $this->_ignoreDefaults);
}
public function setDefault($name, $value)
{
if (!$this->isInIgnoregDefaults($name)) {
parent::setDefault($name, $value);
}
return $this;
}
}