重新验证表格Symfony 3

时间:2018-10-23 21:30:31

标签: forms symfony

在一行中,如何再次手动验证表单?

如果提交了表单,我需要在handleRequest()之后修改表单的对象。

但是,如果我检查表单isValid()是否总是错误的。

我认为有效性是在handleRequest()中检查的,但是在修改对象形式之后我需要再次检查。

public function showAction(Request $request, Phrase $phrase = null) {
    ...
    $game = $gameService->getGame($phrase); // Récupération d'une partie
    $form = $this->createForm(GameType::class, $game);

    $form->handleRequest($request);
    if($form->isSubmitted() && $form->isValid()) {
        ...
    }
    ...
}

1 个答案:

答案 0 :(得分:-2)

无需“重新验证”表单。更改逻辑(算法)。

尝试一下:

\ GET (用户要求游戏)

创建一个新的“游戏”并将其传递给视图。

\ POST (用户提交答案)

验证表单(handleRequest)。

  • 如果一切正常($form->isSubmitted() && $form->isValid(),请创建一个新的“游戏”并将其传递给视图。
  • 将其他表单(无效并带有表单错误)和原始的“游戏”传递给视图

目标是仅在

上生成一个新的“游戏”(实体+表单)
  • \ GET请求
  • \ POST(如果表单有效)

实际上,您是根据每个请求生成的。