symfony - Symfony 同一页面中同一实体的两种形式
问题描述
我在与同一实体一起使用的同一页面上使用了两次 createFormBuilder 函数。$form->isSubmitted() && $form->isValid()
我的问题是 Symfony 仅将第一个生成的表单检测为表单,因此在提交表单时,我无法将该方法用于我的第二个表单。
我的猜测是这是因为对应于 CSRF 字段的隐藏标记对于这两种形式是相同的。
有没有办法为第二种形式生成不同的令牌而不停用它?
在我看来这两个生成的表格
<form name="form" method="post" class="form-delete-confirm">
<input type="hidden" name="_method" value="DELETE" />
<input type="hidden" id="form__token" name="form[_token]" value="h0i7WF2uQxi376ZF4kMm4TbuD0cE8TYPhWP9b-oNqJ4" />
</form>
<form name="form" method="post" class="form-post-confirm">
<input type="hidden" id="form__token" name="form[_token]" value="h0i7WF2uQxi376ZF4kMm4TbuD0cE8TYPhWP9b-oNqJ4" />
</form>
例如,我有两种生成每个表单的方法
public function createParticipantPostForm($meetingId = null, $userId = null)
{
$form = $this->createFormBuilder(null, ['attr' => ['class' => 'form-post-confirm']]);
// The action is null when one form is created form the modal, it is then defined thanks to the user click
if (null !== $meetingId && null !== $userId) {
$form = $form->setAction(
$this->generateUrl(
'meeting_participant_create', [
'meeting_id' => $meetingId,
'user_id' => $userId,
]
)
);
}
return $form->setMethod('POST')->getForm();
}
另一个完全一样,除了setMethod('DELETE')
,class属性和generateUrl方法中的路由
这两种方法在我的控制器中执行,并将表单视图发送到视图。
解决方案
推荐阅读
- javascript - 如何将对象列表嵌套到另一个对象中以及如何优雅地做到这一点?
- amazon-web-services - 安装 clamscan/clamav 后无法通过 ssh 登录时如何修复 ec2 实例?
- r - Automatically writing scatterplots in ggplot2 to a folder
- google-apps-script - 如何将文件上传从 Google 表单移动到 Google Drive 中的特定文件夹和子文件夹
- json - 如何在邮递员的正文请求中使用环境变量?
- java - 为什么有些 Reactor 操作员要求的元素比他们感兴趣的要多得多?
- javascript - 使用 res.render 传递多个查询对象
- javascript - 如何在 angular.json 中导入带参数的外部脚本?
- jenkins - Jenkins 自定义 DSL 无法在空对象上调用方法 image()
- python - 关于启用 Eager Execution 时不支持 tf.gradients