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 に答える