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