1

サブフォームが埋め込まれている一連のフォームを使用していて、getValuesがサブフォームの配列表記なしで値を返すようにできるかどうかを調べようとしています。

すなわち:

$form = new Zend_Form();
$subForm = new Zend_Form_SubForm();
$form->addSubForm( $subForm, 'contact' );

$form->addElement(new Zend_Form_Element_Text('name'));
$subForm->addElement( new Zend_Form_Element_Text('phone') );

var_dump($form->getValues());

私に出力を与えます:

array(2) {
  ["name"]=>
  NULL
  ["contact"]=>
  array(1) {
    ["phone"]=>
    NULL
  }
}

しかし、私は実際に出力を次のようにしたいと思います。

array(2) {
  ["name"]=>
  NULL
  ["phone"]=>
  NULL
}

Zend_Form関数をオーバーライドせずにこれを行う簡単な方法はありますか?

4

2 に答える 2

3

以下を使用して、非常に簡単に実行できます。

$subform->setIsArray(false);
于 2011-02-10T16:21:18.570 に答える
1

Something like this may be a start:

$data = array();
foreach ($form->getSubForms() as $subform) {
     $data += $subform->getValues();
}
于 2010-08-05T06:57:38.747 に答える