将Symfony表单错误传递给会话并应用于另一种形式(相同类型)

时间:2013-10-23 13:50:05

标签: forms symfony symfony-forms

我需要使用会话传递一个FormType,但是对象太大并且会破坏服务器,甚至是序列化的。

无论如何我可以使用会话传递表单错误,这样我可以稍后将错误应用到另一种形式(相同类型)吗?

1 个答案:

答案 0 :(得分:1)

您可以执行类似这样的操作但是您将丢失FormError上下文并且只留下错误消息(字符串类型)。这适合你吗?

$form->handleRequest($request);
if ($form-isValid()){
    // form is valid, proceed with logic
}else{
    /** @var FormError[] **/
    $errors = $form->getErrors();
    $text_errors = array();

    if ( count($errors)){   
        foreach ( $error as $e ){
            $text_error[] = $e->getMessage();
        }

        $session = new Session(); // maybe unnecesarry, if you've already created it
        $session->set("my.form.errors", $text_error);
    }

    // Proceed with error handling...   
}