我得到了一个概览页面,在那里我可以单击按钮删除单行,也可以选择要删除的多行。
因为laravel只能通过发送删除请求来删除项目,所以我很好奇在这个问题上最好的方法是什么。
我真的不想为此使用ajax,因为我正在利用Session::flash的反馈消息等。
对单行执行item/1?action=destroy
这样的操作会非常好,这样我就可以对要删除的多个值使用一个表单,因为我不能为单行嵌套一个表单。
我很想听听你做这些事情的方式。
您的页面可以只有一个表单,并在每行旁边包括submit
按钮(或带有type="submit"
的input
按钮),name="delete"
和value
设置为该行的ID。此外,您可以在每一行旁边都有一个复选框,再次将value
设置为其ID,然后用name="deleteMultiple"
提交一个"删除选中的行"按钮。此表单将POST
连接到一个路由,该路由将查看Input
值,并相应地执行操作:
-
如果单击了单行的删除按钮,
Input::get('delete')
将包含要删除的单行的ID,您可以将其传递给您的destroy
方法。 -
如果单击了"删除选中的行",
Input::has('deleteMultiple')
将返回true,而Input
将包含已选中复选框的数组。然后你可以类似CCD_ 15。
您可以使用javascript来简化或增强一些表单处理,尽管这不是必需的。
公共函数destroy(Request$Request){
$sd = $request::get('id');
if (!empty($sd)) {
$register = Register::findOrFail($sd);
$register->delete();
} else {
$data = $request::get('chk');
foreach ($data as $d) {
$register = Register::findOrFail($d);
$register->delete();
}
}
return redirect('register');
}