为了账号安全,请及时绑定邮箱和手机立即绑定

Symfony - Twig - 修改或删除资源并返回页面的超文本链接

Symfony - Twig - 修改或删除资源并返回页面的超文本链接

PHP
largeQ 2021-12-03 19:37:28
我有一个带有 Symfony/Twig 的网站,它在页面上列出了活动问题。每个问题的标题旁边都有一个“接受”链接。“接受”链接是链接到包含问题标识符的路径的超文本链接(例如:)/issues/{id}/accept。单击链接时,将accept调用 Symfony 操作。这个 Symfony 操作只是将问题的状态从“新建”更改为“接受”并重定向到当前页面。一切正常。我唯一的问题是:href 链接使用 GET 方法并在服务器端修改问题资源。GET 不应修改资源。对于“删除”链接,我可能会遇到同样的问题,它会使用 GET 方法(超链接)来调用删除资源的 Symfony 操作。就我而言,是否可以使用超链接(GET 方法)来修改/删除资源,或者我是否需要尝试使用 POST 方法(使用表单)或实现一些 JavaScript 然后使用 PUT 或 PATCH ?有没有什么简单的方法可以只使用 Symfony 和 Twig(没有 JS)来防止这个问题?
查看完整描述

1 回答

?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

在 Symfony 中,您不需要使用 JavaScript 来使用POST, PUT,PATCH或DELETE没有 JavaScript 的方法。只需使用常规的 HTML 表单。


有一个配置选项http_method_override允许您将 HTTP 方法设置为 ieDELETE在表单上,如下所示。


在 Twig 模板中:


{{ form_start(form, {'action': path('target_route'), 'method': 'DELETE'}) }}

在控制器中创建期间:


$form = $this->createForm(TaskType::class, $task, [

    'action' => $this->generateUrl('target_route'),

    'method' => 'DELETE',

]);


查看完整回答
反对 回复 2021-12-03
  • 1 回答
  • 0 关注
  • 152 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信