我在使用普通表和所有按钮都可以正常工作。然后,我遇到了数据表,因此我实现了数据表以列出我的员工模型中的所有员工。 因此,我使用JQuery将数据提供给表。下面是代码:
$(document).ready( function () {
$('.table').DataTable({
processing: true,
serverSide: true,
ajax : '{!! route('employees.search') !!}',
columns: [
{ data: 'name', name: 'name'},
{ data: 'empid', name: 'empid'},
{ data: 'user_type', name: 'user_type'},
{ data: 'depots', name: 'depots'},
{ data: 'id', name: 'id',
render: function ( data , row ) {
return '<div style="margin-left:1%;">
<button class="btn btn-round btn-primary btn-sm"
onclick="showMessage('+data+')">Delete</button>
<form id="'+data+'" method="POST" action=" {{
route("employees.destroy","'+data+'") }} ">
<input type="hidden" name="_method"
value="delete"> {{ csrf_field() }} </form> </div>';
}
},
],
});
});
因此在上面的代码中,我渲染了一个按钮来执行Delete功能。
不知何故,当我将参数传递到路线{{route("employees.destroy","'+data+'") }}
时,它以 data 的形式返回,而我希望它是该行的ID。下面是我的删除功能代码:
public function destroy($id)
{
return $id;
if ( Auth::check() ) {
$findResult = AppUser::where('id','=',$id)->first();
$user = User::where('email',$findResult->email)->first();
if ($findResult->delete())
{
if ($user) {
$user->delete();
}
return redirect()->route('employees.index','all')->with('success' , 'Employee deleted successfully!');
}
return back()->withInput()->with('error' , 'Employee could not be deleted');
}
}
所以我得到的回答是错误的。有人可以告诉我将参数发送到路线的替代方法或解决方案吗?我期望该值是该行的ID,但我得到的响应只是'+ data +'。
答案 0 :(得分:0)
我建议以下内容:
使用addColumn()
方法将URL作为数据的一部分返回。例如:
// ... skipped ...
->addColumn('delete_url', function ($model) {
return route('backend.model.delete', $model);
});
为“删除”按钮提供特殊的类,例如“ btn-delete”。
使用特殊类“ btn-delete”将事件处理程序附加到“删除”按钮。单击按钮后,使用delete_url
数据属性中的URL发出Ajax请求。