ZF: Zend_Form_SubForm отображать элементы в представлении самостоятельно, используя только FormElements и ViewHelper? - PullRequest
0 голосов
/ 14 октября 2011

Моя задача - создать список входов с именем, подобным photoForm [name] [1] .Если я напечатаю $ this-> form в представлении - это нормально.Все поля хороши.

Но я не хочу использовать декоратор, и я хотел бы скомпилировать самостоятельно. (просто оставьте ViewHelper и FormElements для отображения в View)

Я запускаю этот код в представлении:

foreach($this->mainform->getSubForm('photoForm')->getSubforms() as $form)
{
    foreach($form->getElements() as $element)
    {
        print $element;
    }
}

И получаю следующий ввод:

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

Но вместо этого я хотел бы увидеть следующий код:

<input type="text" name="photoForm[name][1]" id="photoForm-name-1" value="" />

Как напечатать его правильно?

Это мой упрощенный исходный код для понимания:

function addInput($name, $id, $value)
{
    global $photoForm;

    $input = new Zend_Form_Element_Text($name);
    $input->setValue($value);

    $subform = new Zend_Form_SubForm(();
    $subform->addElement($input);

    $photoForm->getSubForm('photoForm')->addSubForm($subform, $id);
}

function submitInput()
{
    $input = new Zend_Form_Element_Submit('submit');
    $input->setLabel('Save');

    return $input;
}

$photoForm = Zend_Form();

$subform = new Zend_Form_SubForm();

$photoForm->addSubForm($subform, 'photoForm');
$photoForm->addElement(submitInput());

addInput('name', 1, 'value');

1 Ответ

0 голосов
/ 15 октября 2011

Итак, я нашел ответ .

Предоставлено https://stackoverflow.com/users/220922/fimbulvetr

...