php - 提交后删除 symfony 表单域
问题描述
我有一个表单,我想根据验证期间发生的错误对其进行编辑,但是当我尝试删除一个字段时,我得到了异常“AlreadySubmittedException”。
提交后如何从我的表单中删除字段?
$form = $this->createForm(MyForm::class);
$removeTheField=true;
if ($request->getMethod() == 'POST') {
$form->handleRequest($request);
if ($form->isValid()) {
// Send form data to an API and get api errors
// if api responds with some error
$removeTheField = false;
// endif
}
}
if(removeTheField)) {
$form->remove('my_field'); // throw AlreadySubmittedException
}
我正在考虑但我不太喜欢的一种解决方案是使用前一个的数据和更少的字段重新创建表单。
解决方案
我认为这不是正确的方法。因此,如果您知道您有另一个验证,那么您应该为该字段实现您自己的验证,您可以使用正确的值并对其进行验证。
https://symfony.com/doc/current/validation/custom_constraint.html
如果您不需要该字段,则应删除它们或禁用该字段的验证。
推荐阅读
- r - 提取R中给定特定值的列或行
- python-3.x - 在 reStructuredText 中显示部分链接标题
- javascript - 使用 fetch JS 进行异步/等待
- ios - 如何扩展系统默认的 ButtonStyle 类
- opengl-es - getUniformLocation 返回 null
- html - 来自 Web 表单的响应在控制台上的空格后不会显示任何内容
- visual-studio - 在 c++ 中为 15 谜题找到序列 1、...、15 的随机排列
- graphql - 如何通过graphql模式从hasura graphql引擎导入关系?
- unity3d - Astar Pathfinding Project 将 AI 代理的 z 位置设置为 2D 项目中的错误值
- c - 如何在 2D 数组存储的 char 而不是 [posX] [posY] 值上执行 IF 语句