【发布时间】:2020-01-04 22:28:48
【问题描述】:
我正在尝试删除一条记录,但无法在控制器中使用删除功能。一切似乎都很好。
尝试使用资源控制器 destroy 功能以及自定义路由。但是表单不会发布到控制器,而是刷新在 URL 中显示令牌和方法。
以前,我使用 Javascript 函数来确认删除,但它也不起作用。所以我切换到直接发布。
这是未提交的 Javascript 代码:
未捕获的类型错误:无法读取 null 的属性“提交”
但是,console.log(id) 给了我正确的 ID。
即使我在网站的任何地方都在使用这个 Javascript 函数,但在这个页面上它不起作用。
function confirmDeleteUserCartItem(id)
{
let choice = confirm("Are You Sure You Want To Delete This Item ?")
if (choice)
{
document.getElementById('delete-usercart-item-' + id).submit();
}
}
查看:尝试了 2 条路线
<form method="POST" action="{{ route('user.cart.delete', $item->id) }}">
@csrf
@method('DELETE')
<button class="btn btn-danger">Delete</button>
</form>
<form method="POST" action="{{route('user.cart.destroy', $item->id)}}">
@csrf
@method('DELETE')
<button type="submit" class="remove">
<i class="far fa-trash-alt"></i>
</button>
</form>
这是我点击删除后在 URL 中得到的内容:
?_token=klYTBg3OBr0oLfTeS9tSGJwBepgLX8wtCsKRgMOR&_method=DELETE
【问题讨论】:
-
你的 web.php 路由文件是什么样子的?
-
奇怪的事情正在发生。我可以删除在第一条记录之后添加的记录。但是第一条记录没有被删除,只有页面重定向和令牌显示在 url 中。即使第一个记录是清除购物车后的另一项。
-
您能否检查是否可以使用 ::find() 检索特定记录的模型;方法?
标签: javascript php laravel routes sql-delete