laravel中单个和多个删除的最佳方法


Best approach on single and multiple deletion in laravel

我得到了一个概览页面,在那里我可以单击按钮删除单行,也可以选择要删除的多行。

因为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');
}