Теперь я почти уверен, что это невозможно, но я был бы признателен за разъяснение, почему, поэтому я могу избежать подобных ситуаций в будущем! У меня есть форма, которая при отправке в зависимости от пользовательского ввода либо завершается, либо требует дальнейшего ввода с параметром, который необходимо передать в новую форму.
Первоначальная отправка работает нормально, а значения доступны в следующей форме!
$fooID = $foo->save($values);
if($values['register'] == "true")
{
$this->_forward("register", "user", null, array('fooID' => $fooID));
}else{
$this->_redirect('/feedback/thanks');
}
Когда я выполняю следующие действия в переадресации, на экран выводится правильный идентификатор.
if($this->_getParam('fooID') != null){
echo "FOO: ".$this->_getParam('fooID');
}
Однако по какой-то причине я не могу ни добавить элемент к форме $, инициализированный в этом действии, ни заполнить значение существующего поля каким-либо значением.
$form->populate(array('fooID' => $this->_getParam('fooID')));
Вышеприведенное просто ничего не делает, и значение не заполняется, для ссылки создается элемент следующим образом:
$this->addElement('hidden', 'fooID', array(
'decorators' => $this->_noElementDecorator,
'validators' => array(
'Digits'
),
'required' => true
));
Что странно, так это то, что если я изменю fooID в качестве имени скрытого элемента на просто id, значение заполняется параметром url предыдущей страницы отправки формы.
Как я уже сказал, я знаю, что это невозможно, просто интересно, где находится ограничение, если я могу вывести значение рядом с оператором, который не заполняет значение элемента.