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

我有一个带有 Symfony/Twig 的网站,它在页面上列出了活动问题。每个问题的标题旁边都有一个“接受”链接。“接受”链接是链接到包含问题标识符的路径的超文本链接(例如:)/issues/{id}/accept。单击链接时,将accept调用 Symfony 操作。这个 Symfony 操作只是将问题的状态从“新建”更改为“接受”并重定向到当前页面。

一切正常。

我唯一的问题是:href 链接使用 GET 方法并在服务器端修改问题资源。GET 不应修改资源。对于“删除”链接,我可能会遇到同样的问题,它会使用 GET 方法(超链接)来调用删除资源的 Symfony 操作。

就我而言,是否可以使用超链接(GET 方法)来修改/删除资源,或者我是否需要尝试使用 POST 方法(使用表单)或实现一些 JavaScript 然后使用 PUT 或 PATCH ?有没有什么简单的方法可以只使用 Symfony 和 Twig(没有 JS)来防止这个问题?


largeQ
浏览 160回答 1
1回答

牛魔王的故事

在 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',]);
打开App,查看更多内容
随时随地看视频慕课网APP