ソースを参照

ZF-9584: correct getValues() when isArray

- Patch by Christian Albrecht

git-svn-id: http://framework.zend.com/svn/framework/standard/trunk@21899 44c647ce-9c0f-0410-b52a-842ac1e357ba
matthew 15 年 前
コミット
96d20d1320
2 ファイル変更15 行追加2 行削除
  1. 8 2
      library/Zend/Form.php
  2. 7 0
      tests/Zend/Form/FormTest.php

+ 8 - 2
library/Zend/Form.php

@@ -1307,8 +1307,14 @@ class Zend_Form implements Iterator, Countable, Zend_Validate_Interface
             }
         }
         foreach ($this->getSubForms() as $key => $subForm) {
-            $fValues = $this->_attachToArray($subForm->getValues(true), $subForm->getElementsBelongTo());
-            $values = array_merge($values, $fValues);
+            $merge = array();
+            if (!$subForm->isArray()) {
+                $merge[$key] = $subForm->getValues();
+            } else {
+                $merge = $this->_attachToArray($subForm->getValues(true),
+                                               $subForm->getElementsBelongTo());
+            }
+            $values = array_merge_recursive($values, $merge);
         }
 
         if (!$suppressArrayNotation && $this->isArray()) {

+ 7 - 0
tests/Zend/Form/FormTest.php

@@ -1601,6 +1601,13 @@ class Zend_Form_FormTest extends PHPUnit_Framework_TestCase
         $this->assertTrue(isset($errors['foo']['zoo']['iek']));
     }
 
+    public function testGetValuesWithElementsBelongTo()
+    {
+        $data = $this->_setup9350();
+        $this->form->populate($data['valid']);
+        $this->assertSame($this->form->getValues(), $data['valid']);
+    }
+
 
     // Display groups