Zend_Form_SubForm 使用 getValues() 展平数组表示法

发布于 2024-09-12 13:34:50 字数 662 浏览 4 评论 0原文

我正在使用一系列嵌入了子表单的表单,并且我正在尝试弄清楚是否可以使 getValues 返回值而无需子表单上的数组表示法。

ie:

$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 函数的情况下做到这一点?

I am working with a series of forms that have subforms embedded into them and I am trying to work out if I can make getValues return the values without the array notation on the subform.

ie:

$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());

Gives me the output:

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

But I would actually like the output to be:

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

Any easy way of doing this without overriding Zend_Form functions?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

万人眼中万个我 2024-09-19 13:34:50

您可以使用以下方法非常简单地做到这一点:

$subform->setIsArray(false);

You can do it quite simply by using:

$subform->setIsArray(false);
¢好甜 2024-09-19 13:34:50

像这样的事情可能是一个开始:

$data = array();
foreach ($form->getSubForms() as $subform) {
     $data += $subform->getValues();
}

Something like this may be a start:

$data = array();
foreach ($form->getSubForms() as $subform) {
     $data += $subform->getValues();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文