Skip to content

Commit 33a9f1f

Browse files
committed
修正ref参数合并异常问题
1 parent cbaeac9 commit 33a9f1f

File tree

1 file changed

+25
-5
lines changed

1 file changed

+25
-5
lines changed

src/parses/ParseApiDetail.php

Lines changed: 25 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,30 @@ protected function handleParamValue($values, string $field = 'param'): array
462462
}
463463
}
464464
}
465+
} else if(!empty($values) && is_object($values)) {
466+
$item = $values;
467+
if (!empty($item->ref)) {
468+
$refRes = $this->renderRef($item->ref, true);
469+
$params = $this->handleRefData($params, $refRes, $item, $field);
470+
} else {
471+
$param = [
472+
"name" => "",
473+
"type" => $item->type,
474+
"desc" => Lang::getLang($item->desc),
475+
"default" => $item->default,
476+
"require" => $item->require,
477+
"childrenType"=> $item->childrenType
478+
];
479+
if (!empty($item->mock)){
480+
$param['mock']=$item->mock;
481+
}
482+
$children = $this->handleParamValue($item->value);
483+
$param['name'] = $children['name'];
484+
if (count($children['params']) > 0) {
485+
$param['children'] = $children['params'];
486+
}
487+
$params[] = $param;
488+
}
465489
} else {
466490
$name = $values;
467491
}
@@ -726,18 +750,14 @@ protected function handleRefData($params, $refRes, $annotation, string $field,$s
726750
'desc' => Lang::getLang($annotation->childrenDesc),
727751
];
728752
}
729-
$params[] = $item;
730-
731-
if (!empty($item['name'])){
753+
if (!empty($item['name']) ){
732754
$params[] = $item;
733755
}else{
734756
if (count($children['params']) > 0) {
735757
$data = Helper::arrayMergeAndUnique("name",$data,$children['params']);
736758
}
737759
$params = Helper::arrayMergeAndUnique("name",$params,$data);
738760
}
739-
740-
741761
} else {
742762
$params = Helper::arrayMergeAndUnique("name",$params,$data);
743763
}

0 commit comments

Comments
 (0)