【问题标题】:TYPO3 : Call to undefined methodTYPO3:调用未定义的方法
【发布时间】:2019-10-25 22:13:18
【问题描述】:

我正在使用带有新闻系统扩展的 TYPO3 版本 7.6.32,有时我会收到一个错误,然后他会独自消失而没有更改任何内容:

错误:

Call to undefined method 
GeorgRinger\News\Domain\Model\FileReference::getType()

Error thrown in file /var/www/www.example.com/typo3conf/ext/in_news/Classes/ViewHelpers/IsVideoPlacedViewHelper.php in line 25.

因此我去看了著名的文件IsVideoPlacedViewHelper.php。 这就是我从第 24 行发现的:

foreach ($media as $key => $mediaEl) {
    if ($mediaEl->getType() >= 101 && $mediaEl->getType() <= 103 ) {
        return true;
    }
}

当我检查日志文件时,我发现:

2019/06/10 08:17:51 [error] 119340#119340: *4509 FastCGI sent in stderr: "PHP message: http://www.example.com/ - Core: Exception handler (WEB): Uncaught TYPO3 Exception: Call to undefined method GeorgRinger\News\Domain\Model\FileReference::getType() | Error thrown in file /var/www/www.example.com/typo3conf/ext/in_news/Classes/ViewHelpers/IsVideoPlacedViewHelper.php in line 25. Requested URL: http://www.example.com/video/" while reading response header from upstream, client: 188.40.199.147, server: in.fo, request: "GET /video/ HTTP/1.1", upstream: "fastcgi://unix:/run/php/php7.0-fpm.sock:", host: "www.example.com"

【问题讨论】:

    标签: typo3 typo3-7.6.x view-helpers tx-news uncaught-exception


    【解决方案1】:

    出现此错误是因为IsVideoPlacedViewHelper 不支持TYPO3\CMS\Extbase\Domain\Model\FileReference 类。 (news 扩展只是扩展了这个域模型。)它需要一个 TYPO3\CMS\Core\Resource\FileReference,而不是可以由 $mediaEL-&gt;getOriginalResource() 检索。

    因此,您应该更新您的 IsVideoPlacedViewHelper 以考虑到这一点:

    use TYPO3\CMS\Extbase\Domain\Model\FileReference as ExtbaseFileReference;
    
    foreach ($media as $key => $mediaElement) {
        if ($mediaElement instanceof ExtbaseFileReference) {
            $mediaElement = $mediaElement->getOriginalResource();
        }
    
        $type = $mediaElement->getType();
    
        if ($type >= 101 && $type <= 103) {
            return true;
        }
    }
    

    【讨论】:

    • 谢谢@Mathias Brodala!你能告诉我更多关于如何更新IsVideoPlacedViewHelper的信息吗?
    • 非常感谢!我会测试并留意日志,因为错误并不总是出现。
    猜你喜欢
    • 1970-01-01
    • 2022-01-23
    • 1970-01-01
    • 2012-07-27
    • 2018-07-11
    • 2013-10-23
    • 2012-02-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多