重新验证表单 Symfony 3 [关闭]
Posted
技术标签:
【中文标题】重新验证表单 Symfony 3 [关闭]【英文标题】:Revalidate the form Symfony 3 [closed] 【发布时间】: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()中检查但我需要在修改对象表单后再次检查。 你最好删除这个问题并重新开始一个新鲜而清晰的问题。当然是英文... ;) 【参考方案1】:无需“重新验证”表单。改变逻辑(算法)。
试试这个:
\GET(用户请求游戏)
创建一个新的“游戏”并将其传递给视图。
\POST(用户提交答案)
验证表单 (handleRequest
)。
$form->isSubmitted() && $form->isValid()
) 创建一个新的“游戏”并将其传递给视图。
否则表单(因表单错误而无效)和原始“游戏”将传递给视图
目标是只在
上生成一个新的“游戏”(实体+表单) \GET 请求 \POST 如果表单有效实际上,您在每次请求时都会生成它。
【讨论】:
感谢您的回复。以上是关于重新验证表单 Symfony 3 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
Symfony 2.3 使用 handleRequest 验证表单非常慢
直接访问登录表单时未设置会话 cookie,导致 CSRF 令牌无效