0

我有一个包含 A 类的 5 个子表单和 B 类的另一个子表单的表单。

我想首先在视图中显示 A 类的子表单,但我不知道如何只检索它们。

我应该创建另一个包含 A 类的 5 个子表单的子表单吗?有没有办法根据模式获取子表单?

我正在像这样在控制器中实例化表单:

   for($i = 0; $i < 6; $i++)
   {
       $form = new ContractLink_Form_ContractOMFOverrideAppendix();
       $form->setElementsBelongTo('override' . $i);
       if(isset($overrides[$i])) {
           $form->populate($overrides[$i]);
       }

       $formSuper->addSubForm($form, 'OMFOverrideAppendixForm' . $i);
   }

我正在使用zf1。

4

1 回答 1

2

正如 IRC 上所说,

您可以使用instanceof PHP 运算符来检查子表单的类。

$subForms = $form->getSubForms();
foreach ( $subForms as $subForm ) {
    if ($subForm instanceof A) {
        // stuff to do for 'A' type of subform
    }
}
于 2013-01-23T09:43:46.967 回答