我有一個概述頁面,我可以點擊一個按鈕來刪除單個行或可以選擇多行刪除。laravel中的單個和多個刪除的最佳方法
因爲laravel只能通過發送刪除請求來刪除一個項目,所以我很好奇在這個問題上什麼是最好的方法。
我真的不想爲此使用ajax,因爲我利用Session :: flash的反饋消息等。
對單行執行如下操作將會非常棒:item/1?action=destroy
,所以我可以使用表單來刪除多個值,因爲我無法爲單行嵌套表單。
我很想聽聽你做這些事的方法。
我有一個概述頁面,我可以點擊一個按鈕來刪除單個行或可以選擇多行刪除。laravel中的單個和多個刪除的最佳方法
因爲laravel只能通過發送刪除請求來刪除一個項目,所以我很好奇在這個問題上什麼是最好的方法。
我真的不想爲此使用ajax,因爲我利用Session :: flash的反饋消息等。
對單行執行如下操作將會非常棒:item/1?action=destroy
,所以我可以使用表單來刪除多個值,因爲我無法爲單行嵌套表單。
我很想聽聽你做這些事的方法。
你的頁面可以具有隻是單一形式的,並且包括submit
按鈕(或input
s的type="submit"
)沿着每一行,與name="delete"
和value
集到該行的ID。另外,您可以在每行旁邊都有一個複選框,並且value
再次設置爲其ID,然後使用name="deleteMultiple"
作爲一個「Delete Checked Rows」提交按鈕。這種形式將POST
來,將採取一看Input
值,並採取相應的行動路線:
如果被點擊單行的刪除按鈕,Input::get('delete')
將 包含單列的ID將被刪除,您可以將其傳遞給 您的destroy
方法。
如果「刪除選中的行」被點擊, Input::has('deleteMultiple')
將返回true,而Input
將 有包含陣列的複選框被選中。然後你可以做 類似Item::destroy(array(1, 2, 3));
。
您可以使用javascript簡化或增強某些表單處理,儘管這不是必需的。
公共職能破壞(請求$要求) {
$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');
}
也許你不明白阿賈克斯,但調用,破壞網址,無需重新加載頁面,是阿賈克斯。 – 2014-10-30 00:19:30
@ Mike'Pomax'Kamermans在我的問題中,我沒有看到'沒有重新加載頁面',因爲我想重新加載頁面;)。我不想使用AJAX,因爲它在沒有頁面刷新的情況下進行刪除,並且使用AJAX,我也無法利用laravel的優勢。 – guidsen 2014-10-30 00:23:54
實際上用ajax你可以先檢查破壞的結果。成功?優秀:直接調用'window.location = http:// thepageineed;'然後轉到具有更新數據模型的頁面。給現代瀏覽器和歷史API有點愚蠢,但非常好。但錯誤,你可以更聰明的東西 – 2014-10-30 00:25:13