2015-07-22 5 views
1

Как вызвать JQuery DataTable с помощью Ajax поста метода же, как this ссылки, но в post методыLaravel DataTable с помощью Ajax поста метода

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 ? ", ["$1"]); 

    // 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); 
} 

ответ

1

При инициализации DataTable на JavaScript, установить метод АЯКСА размещать как это:

"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')

+0

Done Спасибо за комментарий –

Смежные вопросы