我有一个带有 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',
]);
- 1 回答
- 0 关注
- 152 浏览
添加回答
举报
0/150
提交
取消