我在 ActionController 类中收到“count() on null”错误

问题描述 投票:0回答:1

我最近更新了 v12 的扩展。从一开始我就犯了一个错误

在 null 上调用成员函数 count()
在供应商/typo3/cms-extbase/Classes/Mvc/Controller/ActionController.php第321行

在 null 上调用成员函数 addNewArgument()
在供应商/typo3/cms-extbase/Classes/Mvc/Controller/ActionController.php第302行

如果没有我当前的临时修复,我会遇到以下问题:“$this->arguments”尚未在两点定义: count() 的“initializeActionMethodValidators()”和 addNewArgument() 的“initializeActionMethodArguments()”。
我当前的临时修复是这样的(在两个受影响的函数的最顶部使用):

if(is_null($this->参数)){
$this->arguments = GeneralUtility::makeInstance(Arguments::class);
}

是的,我知道我不应该更改核心文件。但我还没有找到另一种方法来解决这个问题。
有解决方案/潜在原因吗?

typo3 typo3-12.x
1个回答
0
投票

感谢@GarvinHicking(也感谢@Chris,即使你说的这次没有让我找到正确的答案)

您是否知道覆盖标记为“内部”且不应在使用代码中使用的方法? [...] 否则,应通过“injectConfigurationManager”方法设置参数数组。在你的情况下这可能不被称为吗?!

“injectConfigurationManager()”未被调用,因为就我而言,扩展的 AbstractBaseController 中存在覆盖。

我注释掉/删除了 Overwrite,这可能是早期 TYPO3 版本的遗留问题,然后错误就消失了。

© www.soinside.com 2019 - 2024. All rights reserved.