瀏覽代碼

Merge pull request #31 from Incenteev/fix_form_errors

Fixed the serialization of pluralized form errors
Johannes 12 年之前
父節點
當前提交
3982db5777
共有 2 個文件被更改,包括 7 次插入3 次删除
  1. 1 1
      composer.json
  2. 6 2
      src/JMS/Serializer/Handler/FormErrorHandler.php

+ 1 - 1
composer.json

@@ -28,7 +28,7 @@
         "symfony/yaml": "2.*",
         "symfony/translation": ">=2.0,<2.2-dev",
         "symfony/validator": ">=2.0,<2.2-dev",
-        "symfony/form": ">=2.0,<2.2-dev",
+        "symfony/form": ">=2.1,<2.2-dev",
         "symfony/filesystem": "2.*"
     },
     "autoload": {

+ 6 - 2
src/JMS/Serializer/Handler/FormErrorHandler.php

@@ -76,7 +76,7 @@ class FormErrorHandler implements SubscribingHandlerInterface
             $errorsNode->appendChild($errorNode);
         }
 
-        foreach ($form->getChildren() as $child) {
+        foreach ($form->all() as $child) {
             if (null !== $node = $this->serializeFormToXml($visitor, $child, array())) {
                 $formNode->appendChild($node);
             }
@@ -116,6 +116,10 @@ class FormErrorHandler implements SubscribingHandlerInterface
 
     private function getErrorMessage(FormError $error)
     {
+        if (null !== $error->getMessagePluralization()) {
+            return $this->translator->transChoice($error->getMessageTemplate(), $error->getMessagePluralization(), $error->getMessageParameters(), 'validators');
+        }
+
         return $this->translator->trans($error->getMessageTemplate(), $error->getMessageParameters(), 'validators');
     }
 
@@ -133,7 +137,7 @@ class FormErrorHandler implements SubscribingHandlerInterface
         }
 
         $children = array();
-        foreach ($data->getChildren() as $child) {
+        foreach ($data->all() as $child) {
             $children[$child->getName()] = $this->convertFormToArray($visitor, $child);
         }