我正在使用jquery来删除记录我有两种不同的jquery方法,一种是删除一条记录,它在Controller Destroy方法中,另一种是删除多条记录,它们在Controller destroyAll方法中 我想在Controller中只使用Destroy方法,其中删除单个和多个记录boyh可以处理,我使用资源控制器 在这里我的方法
单记录jquery方法
function studentDelete(id) {
if(confirm('Are you sure to delete this User!')) {
$("#row_"+id).attr("style", "display:none");
$.ajax({
url: '/student/'+id,
type: "DELETE",
success: function(result) {
if(result == 'delete') {
$('#message').show();
$('#message-text').html('successfully deleted.');
$('#message').removeClass('displayhide').addClass('alert alert-success display-show');
}
}
});
}
}
用于多记录jquery方法
function deleteAll () {
if(!$('input:checkbox:checked').length){
alert("Nothing Selected");
return false;
}
if(confirm('Are you sure!')) {
var checkedValues = $('input:checkbox:checked').map(function() {
return this.value;
}).get();
$.ajax({
type : "POST",
url : "{{ url('/school-management/student/destroyAll') }}",
data : {ids: checkedValues, _token: "{{ csrf_token() }}"},
success: function(result) {
if(result == 'delete') {
window.location.href = "/dashboard";
}
}
});
}
}
单一记录的控制器方法
public function destroy($id)
{
$student = Student::findOrFail($id);
$student->delete();
return 'delete';
}
单一记录的控制器方法
public function destroyAll(Request $request)
{
$ids = $request->input('ids');
$school = Student::whereIn('id', $ids);
$school->delete();
session()->flash('msg',trans('deleted successfully.'));
return 'delete';
}
路线
Route::resource('/student', 'SchoolController');
我想只使用一个destroy方法来处理一个和多个删除记录 我有想法,但不知道如何使用它 只是为了检查来自studentDelete或者deleteAll
中的哪个方法的请求答案 0 :(得分:0)
在控制器中创建一个通用函数来删除一个或多个记录,其输入参数是一个数组:
public function delete(Request $request)
{
// here $request is an array that contains one or more id's into it
if(count($request->input()) > 0)
{
foreach(($request->input() as $id)
{
// code to delete records
}
}
}
答案 1 :(得分:0)
将您的第一个ajax更改为
$.ajax({
type : "POST",
url : "{{ url('/student/destroy') }}",
data : {ids: id, _token: "{{ csrf_token() }}"},
和你的第二个
$.ajax({
type : "POST",
url : "{{ url('/student/destroy') }}",
data : {ids: checkedValues, _token: "{{ csrf_token() }}"},
和你的销毁功能
public function destroy(Request $request)
{
$ids = $request->input('ids');
if (gettype($ids) == 'array') {
$school = Student::whereIn('id', $ids);
} else {
$school = Student::findOrFail($id);
}
$school->delete();
session()->flash('msg',trans('deleted successfully.'));
return 'delete';
}