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

时间:2014-10-30 00:17:24

标签: php forms laravel

我有一个概述页面,我可以单击按钮删除单行,也可以选择要删除的多行。

因为laravel只能通过将其作为删除请求发送来删除项目,所以我很好奇这个问题的最佳方法是什么。

我真的不想使用ajax,因为我正在利用Session :: flash的反馈消息等。

对于单行执行类似于item/1?action=destroy的操作会非常棒,因此我可以使用表单来删除多个值,因为我无法为单行嵌套表单。

我很想听听你做这些事情的方式。

2 个答案:

答案 0 :(得分:1)

您的网页只有一个表单,并且每行包含submit个按钮(或inputtype="submit"),name="delete"和{{1}设置为行的ID。此外,您可以在每行旁边打开一个复选框,同时将value设置为其ID,然后选择一个"删除已检查的行"使用value提交按钮。此表单会name="deleteMultiple"到一条路线,该路线会查看POST值,并采取相应的行动:

  • 如果点击了单行的删除按钮,则会Input 包含要删除的单行的ID,您可以将其传递给该行 你的Input::get('delete')方法。

  • 如果"删除已检查的行"点击了, destroy将返回true,Input::has('deleteMultiple')将返回true 包含已选中复选框的数组。然后你可以做 类似于Input

您可以使用javascript来简化或增强某些表单处理,但这并不是必需的。

答案 1 :(得分:0)

public function destroy(请求$ 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');
}