目前,我正在显示页面上,我正在运行我的控制器中的show
函数,因此我的网址在网址栏中显示为dashboard/1/people
。现在,当我点击一个人时,它会路由到另一个页面,这就是调用getPeople
的位置。
如何从1
中的ajax请求获取我点击的scripts
的人的ID并传递给我的控制器?
PS:目前,我已经在ajax请求中对1
进行了硬编码,但我希望它是动态的
我如何完成这项工作?
脚本
datatable = $('#table').DataTable({
"ajax": "{{ route('dashboard/1/people') }}",
"columns": [
{data: 'check', name: 'check'},
],
控制器
public function show($id)
{
$class = Class::whereId($id)->first();
return view('show');
}
public function getPeople($id)
{
$get_id = $id;
$class = Class::whereId($get_id)->first();
$people = $class->peoples()->get();
return Datatables::of($people)->addColumn('action', function ($ppl) {
//return
})->make(true);
}
答案 0 :(得分:2)
这应该有效:
在getPeople
方法存储中,session
变量中的ID
public function getPeople($id)
{
$get_id = $id;
//using session helper method
session(['show_id' => $id]);
$class = Class::whereId($get_id)->first();
$people = $class->peoples()->get();
return Datatables::of($people)->addColumn('action', function ($ppl) {
//return
})->make(true);
}
然后在你的ajax代码中访问它:
datatable = $('#table').DataTable({
"ajax": "{{ route('dashboard/'.session('show_id').'/people') }}",
"columns": [
{data: 'check', name: 'check'},
],
答案 1 :(得分:0)
DataTable ajax允许你以对象格式传递额外的参数,如下所示:
datatable = $('#table').DataTable({
"ajax": {
"type": "GET",
data:{id: my_id_var},
"url": "my_route"
}
}
在你的函数中只需获取Request var
public function getPeople(Request $request){
$get_id = $request->id;
$class = Class::whereId($get_id)->first();
$people = $class->peoples()->get();
return Datatables::of($people)->addColumn('action', function ($ppl) {
//return
})->make(true);
}
中的更多信息