public function listProductType() { if (!Request::ajax()) { return App::abort(404); } $start = Input::has('start') ? (int) Input::get('start') : 0; $length = Input::has('length') ? Input::get('length') : 10; $search = Input::has('search') ? Input::get('search') : []; $productTypes = ProductType::select('id', 'name', 'description'); if (!empty($search)) { foreach ($search as $key => $value) { if (empty($value)) { continue; } $value = ltrim(rtrim($value)); $productTypes->where($key, 'like', '%' . $value . '%'); } } $order = Input::has('order') ? Input::get('order') : []; if (!empty($order)) { $columns = Input::has('columns') ? Input::get('columns') : []; foreach ($order as $value) { $column = $value['column']; if (!isset($columns[$column]['name']) || empty($columns[$column]['name'])) { continue; } $productTypes->orderBy($columns[$column]['name'], $value['dir'] == 'asc' ? 'asc' : 'desc'); } } $count = $productTypes->count(); if ($length > 0) { $productTypes = $productTypes->skip($start)->take($length); } $arrTypes = $productTypes->get()->toArray(); $arrReturn = ['draw' => Input::has('draw') ? Input::get('draw') : 1, 'recordsTotal' => ProductType::count(), 'recordsFiltered' => $count, 'data' => []]; if (!empty($arrTypes)) { foreach ($arrTypes as $type) { $arrReturn['data'][] = array(++$start, $type['id'], $type['name'], $type['description']); } } $response = Response::json($arrReturn); $response->header('Content-Type', 'application/json'); return $response; }