all(); $menu_id = $data['menu_id']; $list = $this->excelGetData($menu_id,$request); $list_key = Header_ext::where('menu_id',$menu_id)->select('key','value','type')->orderBy('sort','asc')->get()->toArray(); $excel_top_list = []; $excel_list = []; foreach ($list_key as $v){ $excel_top_list[] = $v['value']; } $excel_list[] = $excel_top_list; foreach ($list as $v){ $detail = []; foreach ($list_key as $vv){ if($vv['type'] === '2') $value = date('Y-m-d H:i:s',$v[$vv['key']]); else $value = $v[$vv['key']]; $detail[] = $value; } $excel_list[] = $detail; } $myExport = new MyExport(); $data = $myExport->commonExport(['data'=>$excel_list]); return [true,$data]; } public function excelGetData($menu_id,$request){ $api = SysMenu::where('id',$menu_id)->value('api'); $path = $this->getMenu(); $control = '\\'.$path[$api]["controller"]; $act = $path[$api]["act"]; $new = new $control(); $detail = $new->$act($request); // if(!isset($detail['data']['data'][0])) $detail['data']['data'][0] = $detail['data']; return $detail['data']['data']; } public function getMenu(){ $app = App(); $routes = $app->routes->getRoutes(); $path = []; foreach ($routes as $k => $value) { if(!isset($value->action['controller'])) continue; $act = explode('@',$value->action['controller']); if(!isset($act[1])) continue; $path[$value->uri]['act'] = $act[1]; $path[$value->uri]['controller'] = $act[0]; } return $path; } }