laravel 数据表使用 ajax post 方法
laravel datatable using ajax post method
如何使用 Ajax post 方法调用 jquery 数据表
与 this link 相同,但在 post
方法中
public function getAdvanceFilterData(Request $request)
{
$users = User::select([
DB::raw("CONCAT(users.id,'-',users.id) as id"),
'users.name',
'users.email',
DB::raw('count(posts.user_id) AS count'),
'users.created_at',
'users.updated_at'
])->leftJoin('posts', 'posts.user_id', '=', 'users.id')
->groupBy('users.id');
$datatables = app('datatables')->of($users)
->filterColumn('users.id', 'whereRaw', "CONCAT(users.id,'-',users.id) like ? ", [""]);
// having count search
if ($post = $datatables->request->get('post')) {
$datatables->having('count', $datatables->request->get('operator'), $post);
}
// additional users.name search
if ($name = $datatables->request->get('name')) {
$datatables->where('users.name', 'like', "$name%");
}
return $datatables->make(true);
}
在 javascript 上初始化 DataTable 时,将 ajax 方法设置为 post,如下所示:
"type": "POST"
(将其添加到您链接的示例中):
ajax: {
url: 'http://datatables.yajrabox.com/eloquent/advance-filter-data',
type: "POST",
data: function (d) {
d.name = $('input[name=name]').val();
d.operator = $('select[name=operator]').val();
d.post = $('input[name=post]').val();
}
},
然后在 laravel 上,您应该能够以
的形式访问输入
$datatables->request->post('post')
如何使用 Ajax post 方法调用 jquery 数据表
与 this link 相同,但在 post
方法中
public function getAdvanceFilterData(Request $request)
{
$users = User::select([
DB::raw("CONCAT(users.id,'-',users.id) as id"),
'users.name',
'users.email',
DB::raw('count(posts.user_id) AS count'),
'users.created_at',
'users.updated_at'
])->leftJoin('posts', 'posts.user_id', '=', 'users.id')
->groupBy('users.id');
$datatables = app('datatables')->of($users)
->filterColumn('users.id', 'whereRaw', "CONCAT(users.id,'-',users.id) like ? ", [""]);
// having count search
if ($post = $datatables->request->get('post')) {
$datatables->having('count', $datatables->request->get('operator'), $post);
}
// additional users.name search
if ($name = $datatables->request->get('name')) {
$datatables->where('users.name', 'like', "$name%");
}
return $datatables->make(true);
}
在 javascript 上初始化 DataTable 时,将 ajax 方法设置为 post,如下所示:
"type": "POST"
(将其添加到您链接的示例中):
ajax: {
url: 'http://datatables.yajrabox.com/eloquent/advance-filter-data',
type: "POST",
data: function (d) {
d.name = $('input[name=name]').val();
d.operator = $('select[name=operator]').val();
d.post = $('input[name=post]').val();
}
},
然后在 laravel 上,您应该能够以
的形式访问输入$datatables->request->post('post')