использование setValue в Zend-Form

Я пытаюсь передать значение элементу Zend-Form. Он должен быть заполнен при создании экземпляра класса формы. Может быть, это даже неправильная идея?

Что я буду делать:

Я хочу присвоить значение моему классу форм через мой контроллер addAction:

$form = new PadForm(NULL, $test->UnitPartID);

Вот конструктор моего класса формы:

 public function __construct($name = null, $unitpartid)

Теперь я подумал, что должно быть легко присвоить значение элементу:

add.phtml

$UnitPartID= $form->get('UnitPartID');
$UnitPartID->setAttribute('class', 'form-control');
$UnitPartID->setAttribute('placeholder', 'UnitPartID');

$UnitPartID->setValue($this->unitpartid);

К сожалению, элемент формы не получает значение.

Где ошибка? Я думаю, что я довольно близок к решению ?? Любая помощь приветствуется.


person pia-sophie    schedule 30.11.2017    source источник
comment
вы уверены, что $this->unitpartid не пусто, когда вы это делаете?   -  person Unex    schedule 01.12.2017
comment
вы правы, я просто повторил это. Как я могу сделать это правильно?   -  person pia-sophie    schedule 01.12.2017
comment
почему setValue, а не populateValues? я имею в виду $form-›populateValues(['UnitPartID' =› 5]);   -  person Mehmet SÖĞÜNMEZ    schedule 07.12.2017
comment
Я попробую это, я использовал populate в Zend 1 и думал, что это устарело в версии 3.   -  person pia-sophie    schedule 11.12.2017


Ответы (1)


Это немного стыдно, потому что это так легко в конце. Но новичкам в Zend иногда сложно понять, где что делать правильно. Поэтому я хочу опубликовать решение для других, у которых есть те же проблемы.

В моем дополнении к контроллеру я присвоил полю формы значение после создания экземпляра класса Form.

$form->get('Formfield')->setValue(some variable);

У меня была тема с дыркой, потому что я искал возможность сделать это в представлении. Там я мог бы, конечно, указать значение, но я не мог получить переменную. Если у кого-то есть еще предложение по этой возможности, пожалуйста, напишите. Я отвечаю на свой вопрос, потому что теперь у меня есть одно рабочее решение.

person pia-sophie    schedule 04.12.2017