Laravel删除数据表行后无法返回原列表页面问题求助
问题根因
存在两个导致无法跳转的问题:一是控制器删除逻辑执行后没有返回重定向响应,二是删除按钮加了target="_blank"属性会在新标签页打开删除路由,原页面不会触发跳转。
解决步骤
1. 修改控制器destroy方法,添加重定向逻辑
在删除语句执行完成后,返回重定向响应即可:
public function destroy($id){ DB::delete('delete from Rolete where ProdusID = ?' ,[$id]); // 写法1:直接返回上一页 return redirect()->back(); // 写法2:明确跳转到列表页路由,稳定性更高 // return redirect('tabledit'); }
2. 修改Blade模板删除按钮,移除target属性
去掉target="_blank",让请求在当前页触发:
<a href = 'delete/{{$row->ProdusID}}' class="btn btn-danger"><i class="fa fa-trash"></i></a>
可选规范优化(非必需)
- 不建议用GET请求做数据删除操作,容易被爬虫、浏览器预加载触发误删,建议改成POST/DELETE请求搭配表单提交,或者使用AJAX异步删除
- 可添加闪存提示告知用户操作结果:控制器重定向时加
->with('success', '删除成功'),再在Blade模板对应位置渲染提示信息即可
内容的提问来源于stack exchange,提问作者LegeNNND
相关产品推荐
相关产品推荐

