📅  最后修改于: 2023-12-03 15:22:43.907000             🧑  作者: Mango
在应用程序开发中,删除操作是十分常见的,但往往会因为随手删除导致不可挽回的后果。因此,我们需要一个删除确认功能来保障用户操作的安全性。本文将介绍如何在 Laravel 中实现删除确认功能。
我们需要创建一个表单,显示要删除的数据信息,并提供确认、取消按钮。在 Laravel 中,我们可以使用 Blade 模板引擎来实现:
<form action="{{ route('delete.post', $post->id) }}" method="POST" id="delete-form">
@csrf
@method('DELETE')
<p>您确定要删除 "{{ $post->title }}" 这篇文章吗?</p>
<button type="submit" class="btn btn-danger">确认删除</button>
<button type="button" class="btn btn-secondary" data-dismiss="modal">取消</button>
</form>
我们需要添加一个 JavaScript 确认框,用于提示用户是否确认删除操作。我们可以使用 Bootstrap 的模态框来实现:
<script>
$('#delete-form').submit(function(event) {
event.preventDefault();
if (confirm('您确定要删除这篇文章吗?')) {
this.submit();
}
});
</script>
我们需要定义一个路由,用于接收 POST 请求,然后再将其重定向到具体的控制器方法中:
Route::delete('/posts/{post}', 'PostController@destroy')->name('delete.post');
在控制器中,我们需要获取要删除的数据,执行删除操作,并重定向到成功或失败页面:
public function destroy($id)
{
$post = Post::findOrFail($id);
if ($post->delete()) {
return redirect()->back()->with('success', '文章删除成功!');
} else {
return redirect()->back()->with('error', '文章删除失败!');
}
}
以上就是在 Laravel 中实现删除确认功能的方法。通过添加删除确认表单、JavaScript 确认框以及定义相应的路由和控制器,我们可以保障用户操作的安全性,防止不必要的误操作。