我有一个概述页面,我可以单击按钮删除单行,也可以选择要删除的多行。
因为laravel只能通过将其作为删除请求发送来删除项目,所以我很好奇这个问题的最佳方法是什么。
我真的不想使用ajax,因为我正在利用Session :: flash的反馈消息等。
对于单行执行类似于item/1?action=destroy
的操作会非常棒,因此我可以使用表单来删除多个值,因为我无法为单行嵌套表单。
我很想听听你做这些事情的方式。
答案 0 :(得分:1)
您的网页只有一个表单,并且每行包含submit
个按钮(或input
个type="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');
}