【开源版20.1.1】自定义搜索报错
部署方式:docker容器化部署
入口:测试->BUG
按照自己的习惯设置了自定义搜索,执行自定义搜索时发生报错:
报错内容如下:
URL: /bug-browse-1-all-bySearch-2.html
Fatal error: Uncaught TypeError: searchTao::initSession(): Argument #2 ($fields) must be of type object|array, null given, called in /apps/zentao/module/search/model.php on line 60 and defined in /apps/zentao/module/search/tao.php:83
Stack trace:
#0 /apps/zentao/module/search/model.php(60): searchTao->initSession('', NULL, NULL)
#1 /apps/zentao/module/search/model.php(281): searchModel->buildQuery()
#2 /apps/zentao/module/bug/tao.php(235): searchModel->getQuery(2)
#3 /apps/zentao/module/bug/model.php(2039): bugTao->processSearchQuery('bug', 2, Array, 'all')
#4 /apps/zentao/module/bug/tao.php(45): bugModel->getBySearch('bug', Array, 'all', 0, 0, 2, '', 'id_desc', Object(pager))
#5 /apps/zentao/module/bug/model.php(110): bugTao->getListByBrowseType('bysearch', Array, 0, Array, 'all', Array, 2, 'id_desc', Object(pager))
#6 /apps/zentao/module/bug/zen.php(244): bugModel->getList('bysearch', Array, 0, Array, 'all', 0, 2, 'id_desc', Object(pager))
#7 /apps/zentao/module/bug/control.php(133): bugZen->getBrowseBugs(1, 'all', 'bysearch', Array, 0, 2, 'id_desc', Object(pager))
#8 /apps/zentao/framework/base/router.class.php(2467): bug->browse(1, 'all', 'bysearch', 2, 'id_desc', 0, 20, 1)
#9 /apps/zentao/framework/router.class.php(738): baseRouter->loadModule()
#10 /apps/zentao/www/index.php(88): router->loadModule()
#11 {main}
thrown in /apps/zentao/module/search/tao.php on line 83
感谢您的反馈。
根据报错信息来看,是调用 searchTao->initSession 方法时,传递的第2个参数的类型不合法导致的。
出现该问题的原因是该请求解析查询字段时,未解析成功。
我在本地使用相同的禅道版本并未重现该问题,具体的原因需要进一步的排查。
您可以分别尝试以下2个方法,看能否正常
1,重新登录系统,再次执行查询操作
2,点击数据列表标题部分最最右侧的齿轮,调整几个展示字段,再次执行查询操作
如果还是不能修复您的问题,加一下禅道商务同事的qq,商务同事会邀请您加入技术交流群,在群里您可以得到更及时的回复。
您好
问题解决了吗?
如果没有解决可以加一下禅道商务同事的qq,商务同事会邀请您加入技术交流群,在群里您可以得到更及时的回复。
也可以将您的qq 给我么留一下,或者加 qq 1945249968
执行->点击需求
URL: /zentao/tutorial-wizard-execution-story-ZXhlY3V0aW9uSUQ9JXM=.html
Fatal error: Uncaught TypeError: storyModel::getExecutionStories(): Argument #6 ($storyType) must be of type string, null given, called in D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\module\execution\control.php on line 472 and defined in D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\module\story\model.php:240
Stack trace:
#0 D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\module\execution\control.php(472): storyModel->getExecutionStories(3, 0, 'order_desc,id_d...', 'all', '0', NULL, '', Object(pager))
#1 D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\framework\base\control.class.php(910): execution->story(3)
#2 D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\framework\control.class.php(419): baseControl->fetch('execution', 'story', Array, '')
#3 D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\module\tutorial\control.php(145): control->fetch('execution', 'story', 'executionID=%s')
#4 D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\framework\base\router.class.php(2479): tutorial->wizard('execution', 'story', 'executionID=%s')
#5 D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\framework\router.class.php(770): baseRouter->loadModule()
#6 D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\www\index.php(88): router->loadModule()
#7 {main}
thrown in
D:\WorkSpaceSHD\software\chandao\ZenTao\app\zentao\module\story\model.php on line
240
您这个问题和上面的还不一样。
需要你看一下 zt_project 表是否有字段 storyType
如果没有的话手动增加一下 ALTER TABLE `zt_project` ADD `storyType` char(30) NULL DEFAULT 'story' AFTER `auth`;
如果有的话 将 module\execution\control.php 的472行
$stories = $this->story->getExecutionStories($executionID, 0, $sort, $type, (string)$param, $project->storyType, '', $pager);
修改为
$stories = $this->story->getExecutionStories($executionID, 0, $sort, $type, (string)$param, (string) $project->storyType, '', $pager);
如果还是不能解决您的问题,加一下 QQ 2845263372 吧,远程排查下。