用新动作扩展扩展
Extending extension with new actions
我正在从 6.2 迁移到 7.6,我正在努力处理一个扩展 (A),它扩展了另一个扩展 (b),它扩展了新闻 (A-->B-->News)。在 6.2 中一切正常,但在 7.6 中却不行。
我正在从 Typoscript 调用我的操作 (lib.news.nextEvent)
lib.news.nextEvent < .related
nextEvent {
switchableControllerActions {
News {
1 = nextEventList
}
}
settings {
startingpoint = 123
limit = 15
link {
skipControllerAndAction = 1
}
}
}
我有这个错误
Oops, an error occurred! Code: 201812181555070cca4167 - {"exception":"exception 'TYPO3\CMS\Extbase\Mvc\Exception\NoSuchActionException' with message 'An action \"nextEventListAction\" does not exist in controller \"Roquin\RoqNewsevent\Controller\EventController\"
TypoScript\setup.txt
config.tx_extbase {
objects {
Roquin\RoqNewsevent\Controller\EventController {
className = QcMedia\QmNewsExtended\Controller\NewsExtendedController
}
}
}
在我的控制器中我有(不是完整的实际 class)
NewsExtendedController.php
use Roquin\RoqNewsevent\Controller\EventController;
class NewsExtendedController extends EventController
public function nextEventListAction(array $overwriteDemand = NULL)
有人可以给我关于该错误的提示吗?
谢谢
除了扩展控制器 class 并在 Typo3 设置中正确声明扩展控制器 className 之外,别无他法。
如果您的 class 名称 QcMedia\QmNewsExtended\Controller\NewsExtendedController 正确并且扩展 QmNewsExtended 已正确安装,则您的缓存可能存在问题。您是否清除了所有缓存,包括自动加载重建?
根据您使用的 roq_newsevent
版本,命名空间会有所不同:
TYPO3 扩展库 3.1.1:
ROQUIN\RoqNewsevent\Controller
来自 visol/ext-roq_newsevent 3.3.0 的分支:
Roquin\RoqNewsevent\Controller
这应该不是问题,但我不确定 TYPO3 中的实现。
config.tx_extbase {
objects {
ROQUIN\RoqNewsevent\Controller\EventController {
className = QcMedia\QmNewsExtended\Controller\NewsExtendedController
}
}
}
您可以尝试在 ext_localconf.php
中使用 XCLASS 而不是 TypoScript config.tx_extbase.XXX
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['ROQUIN\RoqNewsevent\Controller\EventController'] = [
'className' => 'QcMedia\QmNewsExtended\Controller\NewsExtendedController'
];
我正在从 6.2 迁移到 7.6,我正在努力处理一个扩展 (A),它扩展了另一个扩展 (b),它扩展了新闻 (A-->B-->News)。在 6.2 中一切正常,但在 7.6 中却不行。
我正在从 Typoscript 调用我的操作 (lib.news.nextEvent)
lib.news.nextEvent < .related
nextEvent {
switchableControllerActions {
News {
1 = nextEventList
}
}
settings {
startingpoint = 123
limit = 15
link {
skipControllerAndAction = 1
}
}
}
我有这个错误
Oops, an error occurred! Code: 201812181555070cca4167 - {"exception":"exception 'TYPO3\CMS\Extbase\Mvc\Exception\NoSuchActionException' with message 'An action \"nextEventListAction\" does not exist in controller \"Roquin\RoqNewsevent\Controller\EventController\"
TypoScript\setup.txt
config.tx_extbase {
objects {
Roquin\RoqNewsevent\Controller\EventController {
className = QcMedia\QmNewsExtended\Controller\NewsExtendedController
}
}
}
在我的控制器中我有(不是完整的实际 class)
NewsExtendedController.php
use Roquin\RoqNewsevent\Controller\EventController;
class NewsExtendedController extends EventController
public function nextEventListAction(array $overwriteDemand = NULL)
有人可以给我关于该错误的提示吗? 谢谢
除了扩展控制器 class 并在 Typo3 设置中正确声明扩展控制器 className 之外,别无他法。
如果您的 class 名称 QcMedia\QmNewsExtended\Controller\NewsExtendedController 正确并且扩展 QmNewsExtended 已正确安装,则您的缓存可能存在问题。您是否清除了所有缓存,包括自动加载重建?
根据您使用的 roq_newsevent
版本,命名空间会有所不同:
TYPO3 扩展库 3.1.1:
ROQUIN\RoqNewsevent\Controller
来自 visol/ext-roq_newsevent 3.3.0 的分支:
Roquin\RoqNewsevent\Controller
这应该不是问题,但我不确定 TYPO3 中的实现。
config.tx_extbase {
objects {
ROQUIN\RoqNewsevent\Controller\EventController {
className = QcMedia\QmNewsExtended\Controller\NewsExtendedController
}
}
}
您可以尝试在 ext_localconf.php
中使用 XCLASS 而不是 TypoScript config.tx_extbase.XXX
$GLOBALS['TYPO3_CONF_VARS']['SYS']['Objects']['ROQUIN\RoqNewsevent\Controller\EventController'] = [
'className' => 'QcMedia\QmNewsExtended\Controller\NewsExtendedController'
];