public function anyList(Request $request) { if ($request->has('input-sort')) { $arr_sort = $request->input('input-sort'); $arr_sort = (array) json_decode($arr_sort); } elseif (session('sort_filter_company.arr_sort') !== null) { $arr_sort = session('sort_filter_company.arr_sort'); } else { $arr_sort = array(); } session('sort_filter_company.arr_sort', $arr_sort); if ($request->has('input-filter')) { $arr_filter = $request->input('input-filter'); } elseif (session('sort_filter_company.arr_filter') !== null) { $arr_filter = session('sort_filter_company.arr_filter'); } else { $arr_filter = ['name' => '', 'province_id' => '']; } session(['sort_filter_company.arr_sort' => $arr_sort]); session(['sort_filter_company.arr_filter' => $arr_filter]); //Init array $list_provinces = Province::get()->toArray(); //Get value array $list_all_companies = Company::select('id', 'name')->get()->toArray(); $list_company = Company::select('companies.*', 'addresses.*', 'provinces.name as province_name')->leftJoin('addresses', function ($join) { $join->on("companies.id", "=", "addresses.module_id")->where('module_type', '=', 'App\\Company'); }); $list_company->addSelect('provinces.name as province_name')->leftJoin('provinces', function ($join) { $join->on("addresses.province_id", "=", "provinces.id"); }); foreach ($arr_sort as $key => $value) { if ($key == 'id') { $list_company->orderBy('companies.id', $value); } elseif ($key == 'phone') { $list_company->orderBy('companies.phone', $value); } elseif ($key == 'address') { $list_company->orderBy('addresses.address', $value); } elseif ($key == 'town_city') { $list_company->orderBy('addresses.town_city', $value); } elseif ($key == 'province_name') { $list_company->orderBy('provinces.name', $value); } else { $list_company->orderBy($key, $value); } } if (!count($arr_sort)) { $list_company->orderBy('companies.name', 'asc'); } if ($arr_filter['name'] != '') { $list_company->where('companies.name', $arr_filter['name']); } else { foreach ($arr_filter as $key => $value) { if ($value != '') { $list_company->where($key, $value); } } } $list_company = $list_company->paginate(50); $this->layout->content = view('company.list', ['list_company' => $list_company, 'list_all_companies' => $list_all_companies, 'arr_sort' => $arr_sort, 'arr_filter' => $arr_filter, 'list_provinces' => $list_provinces]); }
/** * Display a listing of the resource. * * @return Response */ public function index() { return Province::get(); }
public function getProvinces() { $provinces = Province::get(); return response()->json(["msg" => "Success", "provinces" => $provinces->toArray()], 200); }