diff --git a/module/action/tao.php b/module/action/tao.php index dc4d0ecf9e..99108d7868 100644 --- a/module/action/tao.php +++ b/module/action/tao.php @@ -223,6 +223,9 @@ class actionTao extends actionModel public function getGenerateRelated(string $objectType, int $objectID): array { $product = $project = $execution = 0; + + if(!isset($this->config->objectTables[$objectType])) return array(array($product), $project, $execution); + $result = $this->dao->select('*')->from($this->config->objectTables[$objectType])->where('id')->eq($objectID)->fetch(); if($result) { @@ -275,7 +278,7 @@ class actionTao extends actionModel $field = $result->story != 0 ? 'id' : 'project'; $value = $result->story != 0 ? $result->story : $result->execution; $products = $this->dao->select('product')->from($table)->where($field)->eq($value)->fetchPairs(); - if($products) $product = $products; + if($products) $product = array_values($products); $project = $result->project; $execution = $result->execution; diff --git a/module/action/test/tao/getneedrelatedfields.php b/module/action/test/tao/getneedrelatedfields.php index 272ef3a109..4f68facbab 100755 --- a/module/action/test/tao/getneedrelatedfields.php +++ b/module/action/test/tao/getneedrelatedfields.php @@ -93,11 +93,11 @@ su('admin'); $actionTest = new actionTest(); -r($actionTest->getNeedRelatedFieldsTest('story', 1, 'created', '')) && p('0:0;1;2') && e('1,0,0'); // 测试story类型对象的相关字段获取 -r($actionTest->getNeedRelatedFieldsTest('productplan', 1, '', '')) && p('0;1;2') && e('1,0,0'); // 测试productplan类型对象的相关字段获取 -r($actionTest->getNeedRelatedFieldsTest('branch', 1, '', '')) && p('0;1;2') && e('1,0,0'); // 测试branch类型对象的相关字段获取 -r($actionTest->getNeedRelatedFieldsTest('testcase', 1, 'linked2testtask', '1')) && p('0:0;1;2') && e('1,1,6'); // 测试testcase类型对象的相关字段获取 -r($actionTest->getNeedRelatedFieldsTest('case', 1, 'run', '1')) && p('0:0;1;2') && e('1,1,6'); // 测试case类型对象的相关字段获取 -r($actionTest->getNeedRelatedFieldsTest('task', 1, '', '')) && p('0:0;1;2') && e('1,1,6'); // 测试task类型对象的相关字段获取 -r($actionTest->getNeedRelatedFieldsTest('release', 1, '', '')) && p('0:0;1') && e('1,1'); // 测试release类型对象的相关字段获取 -r($actionTest->getNeedRelatedFieldsTest('unknown', 999, '', '')) && p('0:0;1;2') && e('0,0,0'); // 测试不存在的对象类型的相关字段获取 +r($actionTest->getNeedRelatedFieldsTest('story', 1, 'created', '')) && p('0:0;1;2', ';') && e('1;0;0'); // 测试story类型对象的相关字段获取 +r($actionTest->getNeedRelatedFieldsTest('productplan', 1, '', '')) && p('0,1,2') && e('1,0,0'); // 测试productplan类型对象的相关字段获取 +r($actionTest->getNeedRelatedFieldsTest('branch', 1, '', '')) && p('0,1,2') && e('1,0,0'); // 测试branch类型对象的相关字段获取 +r($actionTest->getNeedRelatedFieldsTest('testcase', 1, 'linked2testtask', '1')) && p('0:0;1;2', ';') && e('1;1;6'); // 测试testcase类型对象的相关字段获取 +r($actionTest->getNeedRelatedFieldsTest('case', 1, 'run', '1')) && p('0:0;1;2', ';') && e('1;1;6'); // 测试case类型对象的相关字段获取 +r($actionTest->getNeedRelatedFieldsTest('task', 1, '', '')) && p('0:0;1;2', ';') && e('1;1;6'); // 测试task类型对象的相关字段获取 +r($actionTest->getNeedRelatedFieldsTest('release', 1, '', '')) && p('0:0;1', ';') && e('1;1'); // 测试release类型对象的相关字段获取 +r($actionTest->getNeedRelatedFieldsTest('unknown', 999, '', '')) && p('0:0;1;2', ';') && e('0;0;0'); // 测试不存在的对象类型的相关字段获取