Zend Framework - скрытый элемент не имеет значения даже при его указании - PullRequest
5 голосов
/ 18 апреля 2011

Я создаю скрытый элемент таким образом:

$this->addElement('hidden', 'id', '1');

но я получаю вот что:

<input type="hidden" name="id" value="" id="id" />

Я тоже так пробовал:

$this->addElement('hidden', 'id', array(
    'value' => 1
));

но это не сработало лучше.

Что не так?

Ответы [ 8 ]

5 голосов
/ 18 апреля 2011

Возможно, вы используете

$form->populate($someData);

или

$form->isValid($someData);

где-то в вашем коде;)

1 голос
/ 08 июля 2013

Я думаю, вы должны указать в своем классе:

public function populate(array $values) {
    parent::populate($values);
    $this->addElement('hidden', 'hidden');
    $el = $this->getElement('hidden');
    $el->setValue(1);

}
1 голос
/ 18 апреля 2011

Вы можете использовать метод setValue Zend_Form.

Попробуйте это так:

$this->getElement('your-name')->setValue(1);
0 голосов
/ 31 декабря 2014

После проблемы с этим я использовал (в классе формы)

$hidden = $this->createElement('hidden','hiddenElement');
$hidden->setAttrib('xxx','my value');
$this->addElement($hidden);

Извлечь значение с

$form->hiddenElement->getAttrib('xxx');

Это не лучшее решение, но оно сработало для меня.

0 голосов
/ 12 декабря 2013

Ответ прост:

//$form <- is your zend form element;
$form->get('element_name')->setValue(1);

работал на меня! :)

Как говорили те, кто был до меня: убедитесь, что на вашем пути нет сеттеров элементов формы (заполнить, задать значения и т. Д.). :)

0 голосов
/ 19 апреля 2011

Вы пробовали setDefault?

$this->addElement( 'hidden', 'id', array(
    'default' => 1
) );
0 голосов
/ 18 апреля 2011

Это работает для меня (zf 1.1) с int или строкой, но вы пытались передать значение в виде строки ?:

$this->addElement( 'hidden', 'id', array('value'=>'1') )

0 голосов
/ 18 апреля 2011

Возможно, перед рендерингом вы делаете $form->setValue(), а идентификатор параметра равен нулю.

...