/ / Zend Form - ¿Cómo establecer valores en elementos de subformulario? - php, zend-framework, zend-form

Zend Form - ¿Cómo establecer valores en elementos de subformulario? - php, zend-framework, zend-form

array
"subQuantity" =>
array
"quantity_6" => string "23" (length=2)
"quantity_16" => string "23" (length=2)
"quantity_18" => string "23" (length=2)
"update" => string "Update" (length=6)

¡Buen día! Acabo de crear un subformulario de mi formulario zend existente y obtengo esta información cuando se envía el formulario. En función de los datos publicados (los elementos de cantidad), me gustaría establecer los valores a elementos de subformulación. ¿Es posible? Gracias por adelantado. ¡salud y feliz codificación!

Respuestas

7 para la respuesta № 1

No estoy seguro de si desea establecer valores de elementos de subformulario individuales o todos a la vez. Sin embargo, puedes usar el método populate. Por ejemplo:

 $yourForm->populate(array(
"subQuantity" => array(
"quantity_6" => "some value 1",
"quantity_16" => "some value 2",
"quantity_18" => "some value 3",
)
));

EDITAR:

Aquí hay algunas formas de configurar campos individuales:

$yourForm->populate(array(
"subQuantity" => array(
"quantity_16" => "some value",
)
));

// OR

$yourForm->getSubForm("subQuantity")->getElement("quantity_16")->setValue("some value");

// this also should work (not sure if it works with underscore in "quantity_16" though)

$yourForm->subQuantity->quantity_16->setValue("some value");

0 para la respuesta № 2
    $formSuper = new ContractLink_Form_ContractAllotmentSuper();
foreach($allotments as $key => $allotment)
{
$form = new ContractLink_Form_ContractAllotment();
$form->populate($allotment);
$formSuper->addSubForm($form, "contractAllotmentForm" . $key);
}