/** * Index function. Lists items items under specific category * * @return view */ public function index(Request $request, $cat_code = '') { if ($cat_code != '') { //get category info $objCategory = App\CategoryMaster::where('cat_code', $cat_code)->first(); if (null == $objCategory) { abort(404); } //create an object of a pagination class $pagination = new \Pagination(); //set number of records per page $pagination->setRecordsPerPage(18); //set links call method (PHP for simple full callback or JS for javascript function call (in case your fetching data using ajax)) $pagination->setRenderMode('PHP'); //get page number if its been ser in URL if (isset($_GET['page'])) { $page = $_GET['page']; } else { $page = 1; } //set page number $pagination->setPage($page); //get items for the category $itemCount = DB::table('item_master')->join('type_master', 'item_master.item_type', '=', 'type_master.type_id')->join('category_master', 'type_master.category', '=', 'category_master.cat_id')->select('item_master.*')->where('status', 1)->where('category_master.cat_code', $cat_code)->count(); //set number of total records $pagination->setTotalRecords($itemCount); //calculate offset (copy and paste this to your code) $offset = ($page - 1) * $pagination->getRecordsPerPage(); //get items for the category $objItems = DB::table('item_master')->join('type_master', 'item_master.item_type', '=', 'type_master.type_id')->join('category_master', 'type_master.category', '=', 'category_master.cat_id')->select('item_master.*', 'type_master.type_code', 'type_master.name as type_name', 'category_master.name as cat_name', 'category_master.cat_code')->where('status', 1)->where('category_master.cat_code', $cat_code)->skip($offset)->take($pagination->getRecordsPerPage())->get(); return view('category_items', compact('objCategory', 'objItems', 'pagination')); } else { abort(404); } }