【问题标题】:Revalidate the form Symfony 3 [closed]重新验证表单 Symfony 3 [关闭]
【发布时间】:2019-03-28 05:26:19
【问题描述】:

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

如果提交了表单,我需要在 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()) {
        ...
    }
    ...
}

【问题讨论】:

  • 请用英文?
  • [解释他为什么要翻译]@Alexdu98 Le site est en anglais。 Le but du site est de permettre à ta réponse d'aider d'autres personnes, tu peux réussir a traduire tout ca? tu n'es pas obligé d'ajouter autant de contexte。 C'est souvent mieuvent mieux de réduire le questione a ses aspect techniques。
  • 好吧对不起,这是我的第一篇文章。在一行中,如何手动再次验证表单?如果提交了表单,我需要在 handleRequest() 之后修改表单的对象。但是,如果我检查表单 isValid() 是否总是错误的。我认为有效性是在handleRequest()中检查但我需要在修改对象表单后再次检查。
  • 你最好删除这个问题并重新开始一个新鲜而清晰的问题。当然是英文... ;)

标签: forms symfony


【解决方案1】:

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

试试这个:

\GET(用户请求游戏)

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

\POST(用户提交答案)

验证表单 (handleRequest)。

  • 如果没问题 ($form->isSubmitted() && $form->isValid()) 创建一个新的“游戏”并将其传递给视图。
  • 否则表单(因表单错误而无效)和原始“游戏”将传递给视图

目标是只在

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

实际上,您在每次请求时都会生成它。

【讨论】:

  • 感谢您的回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-06-09
  • 2015-01-23
  • 1970-01-01
  • 1970-01-01
  • 2018-04-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多