我正在将网站从 TYPO3 8 升级到 TYPO3 9
所有代码在 TYPO3 8 上运行良好。
现在我必须适应很多,因为它来自更早的 TYPO3(TCA,学说,...)并抛出一些错误。
目前我有一些页面的问题,我只收到这个错误(稍作修改):
(1/2) #1278450972 TYPO3\CMS\Extbase\Reflection\Exception\UnknownClassException
类 VendorName\VendorExtensionName\Domain\Model\TYPO3\CMS\Extbase\Persistence\ObjectStorage 不存在。反思失败。
我假设它是由以下代码触发的:
<?php
namespace VendorName\VendorExtensionName\Controller;
use TYPO3\CMS\Extbase\Annotation\Inject;
class AnsprechpartnerController extends \TYPO3\CMS\Extbase\Mvc\Controller\ActionController {
/**
* ansprechpartnerRepository
*
* @Inject
* @var \VendorName\VendorExtensionName\Domain\Repository\AnsprechpartnerRepository
*/
protected $ansprechpartnerRepository;
[...]
/**
* action showDetail
*
* @return void
*/
public function showDetailAction() {
$pids = $this->settings['pids'];
$this->settings['ansprechpartner'] = explode(',', $this->settings['ansprechpartner']);
foreach ($this->settings['ansprechpartner'] as $uid) {
$person = $this->ansprechpartnerRepository->findByUid($uid);
[...]
因为最后一行在调试堆栈中。
扩展有8种相互关联的记录。我假设因此定义了关系lazy并使用了对象存储。
<?php
namespace VendorName\VendorExtensionName\Domain\Model;
use TYPO3\CMS\Extbase\Annotation\ORM\Lazy;
/**
*
* @package vendor_extension_name
*
*/
class Ansprechpartner extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {
[...]
/**
* Organisationseinheit
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\VendorName\VendorExtensionName\Domain\Model\Organisation>
* @Lazy
*/
protected $organisationseinheit;
/**
* Dienstleistungen
*
* @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage<\VendorName\VendorExtensionName\Domain\Model\AnsprechpartnerDienstleistung>
* @Lazy
*/
protected $dienstleistungen = NULL;
[...]
炎炎设计
冉冉说