typo3 - “未声明的参数传递给 ViewHelper”异常
问题描述
更新 TYPO3 后,我得到一个TYPO3Fluid\Fluid\Core\ViewHelper\Exception
“传递给 ViewHelper 的未声明参数......有效参数是。”
解决方案
提示:使用 rect 进行这些(和其他)转换!TYPO3 的功能可用,请参阅
这可能是由于使用已被删除的功能的扩展。仅使用 TYPO3 内核,您应该不会看到此错误。
在您的扩展中:如果您仍然在 ViewHelper 类中使用带有参数的 render() 方法,您可能需要替换它:
前:
public function render(Mail $mail, $type = 'web', $function = 'createAction')
后:
public function initializeArguments()
{
parent::initializeArguments();
$this->registerArgument('mail', Mail::class, 'Mail', true);
$this->registerArgument('type', 'string', 'type: web | mail', false, 'web');
$this->registerArgument('function', 'string', 'function: createAction | senderMail | receiverMail', false, 'createAction');
}
public function render()
{
$mail = $this->arguments['mail'];
$type = $this->arguments['type'] ?? 'web';
// ...
}
此外,
- 如果不需要使用render()(例如,除非您需要访问 $this 变量),出于性能原因,您可能需要切换到renderStatic()(另请参阅其他 StackOverflow 答案以获得澄清)
- 从类继承
TYPO3Fluid\Fluid\Core\ViewHelper
而不是TYPO3\CMS\Fluid\Core\ViewHelper
:
// use TYPO3\CMS\Fluid\Core\ViewHelper\AbstractViewHelper;
use TYPO3Fluid\Fluid\Core\ViewHelper\AbstractViewHelper;
文档:
变更日志:
推荐阅读
- typescript - 为什么实时数据库不更新?
- android - 试图从谷歌地图获取纬度是通过 Android 中的意图返回 null
- python-3.x - 在 lmfit 中考虑实验误差
- docker - 如何将流量从一个端口重定向到同一接口中的另一个端口?
- linux - 试图化解二元炸弹阶段 5 (phase_5)
- ios - 如何将单点触摸传递给底层视图但保持 UIPanGestureRecognizer 工作?
- python - 如何使 suvat 计算器根据缺失值进行计算
- azure - 如何使用 Azure Devops 将生成输出发布到网络共享
- javascript - 如何使用多个 Promise 并使用 Promise.all 解决?
- c++ - 如何在 C++ 中提供一个模板化函数作为另一个函数的参数,具有默认值?