2014-02-23 56 views
0

早上好,在窗体中获取儿童错误

我已经通过SO搜索了类似的主题,但都没有工作。

在我Sf2.4我在控制器得到这个:

$response = array('status' => 'failure'); 
     $errors = $form->getErrors(); 
     foreach($form->all() as $child) { 
      $errors = array_merge($errors, $child->getErrors()); 
      var_dump(($child->getErrors())); 
     } 

$errors变量始终是一个空数组,即使有:

$form->getErrorsAsString(); 

我也看到一些错误。为什么它没有得到儿童节点的错误?

回答

0

基本上,你挖掘到https://github.com/symfony/symfony/pull/9918如果您希望所有形式的错误,你需要自己通过各种形式的孩子递归迭代手动使其...

编辑:

类似的东西应该诀窍:

function getErrors($form) { 
    $errors = $form->getErrors(); 

    foreach ($form as $child) { 
     $errors = array_merge($errors, getErrors($child)); 
    } 

    return $errors; 
} 

$errors = getErrors($form); 
+0

对不起......你能提供一个例子吗?我想我已经在迭代孩子了? –

+0

看到我的编辑,你正在迭代孩子,但在一个单一的层面上不完全递归。 – egeloen