project_id)->findOrFail(request()->project_id); $kanban = $service->kanban($project, request()->get("group", "requirement_asc")); $TaskType = $kanban['status_items']; $item = $kanban['group_data']; $result=[]; $j = 0; for ($i = 0; $i < count($item) ; $i++) { foreach ($TaskType as $type){ //遍历每一种任务状态,转为扁平数据行 $arrItem = (array)$item[$i]; if ($arrItem[$type]) { foreach ($arrItem[$type] as $value){ $result[$j]['title'] = $arrItem['title']??''; $result[$j]['priority'] = $arrItem['priority']??''; $result[$j]['status'] = $arrItem['status']??''; $result[$j]['type'] = $type; $result[$j]['typeName'] = $value->name; $result[$j]['typeEnd'] = $value->end; $result[$j]['typeAssign'] = $value->assignTo->username??''; $j++; } } } } return new Collection($result); } public function map($project): array { $displayId = self::$index++; return [ $displayId, $project['title'], $project['priority'], $project['status'], $project['typeName'], $project['type'], $project['typeEnd'], $project['typeAssign'], ]; } public function headings(): array { return [ 'ID', 'Title', 'Priority', 'Status', 'TaskName', 'TaskStatus', 'TaskEnd', 'TaskAssign', ]; } }