【问题标题】:Symfony display form errors from validation methodSymfony 显示来自验证方法的表单错误
【发布时间】:2016-10-12 08:58:52
【问题描述】:

因为我习惯了 Laravel,所以我尝试在单独的方法中验证表单。但我不知道如何重定向回来并显示错误。主要问题是显示错误。最好的情况是我可以设置验证方法中的错误并让 Symfony 中的默认表单错误呈现接管。

我的方法可能完全错误,如果是这样,我希望有人能指导我正确的方向。

我做了一个方法来创建表单并在twig中渲染它

/**
 * @Route("/form")
 * @Template("Bundle::form.html.twig")
 * @Method("GET")
 */
public function formAction(Request $request)
{
    $state = new State();

    $form = $this->createFormBuilder($state)
        ->add('name', TextType::class)
        ->add('save', SubmitType::class, array('label' => 'Submit'))
        ->getForm();

    return [
        'form' => $form->createView(),
    ];
}

还有另一种验证表单并在出错时重定向回来的方法

/**
 * @Route("/form")
 * @Method("POST")
 */
public function formAction(Request $request)
{
    $state = new State();

    $form = $this->createFormBuilder($state)
        ->add('name', TextType::class)
        ->add('save', SubmitType::class, array('label' => 'Submit'))
        ->getForm();

    $form->handleRequest($request);

    if ($form->isSubmitted()) {
        if (!$form->isValid()) {
            // How to pass errors?
            return $this->redirectTo('/form');
        }

        // ... Store State
    }

    // ... 
}

【问题讨论】:

标签: php validation symfony symfony2-forms


【解决方案1】:

1) 签出this

2) 如果您真的想从控制器中添加错误:

use Symfony\Component\Form\FormError;
// ...
$form->get('name')->addError(new FormError('Wrong name you fool :p'));

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-30
    • 2015-01-16
    相关资源
    最近更新 更多