我正在將網站從 TYPO3 8 升級到 TYPO3 9所有代碼在 TYPO3 8 上運行良好?,F在我必須適應很多,因為它來自更早的 TYPO3(TCA,學說,...)并拋出一些錯誤。目前我有一些頁面的問題,我只收到這個錯誤(稍作修改):(1/2) #1278450972 TYPO3\CMS\Extbase\Reflection\Exception\UnknownClassException類 VendorName\VendorExtensionName\Domain\Model\TYPO3\CMS\Extbase\Persistence\ObjectStorage 不存在。反思失敗。我假設它是由以下代碼觸發的:<?phpnamespace 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并使用了對象存儲。<?phpnamespace 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;[...]
3 回答

炎炎設計
TA貢獻1808條經驗 獲得超4個贊
我們發現,這是由于 9.x 中的更改,現在 Annotations 和 TypeHints 中支持相對命名空間。
在 9.x 之前,Extbase 反射總是假設絕對命名空間。
如果有一個帶有這個簽名的方法,它在 9.x 之前工作(這是一個錯誤)并且從 9.x 開始不再工作:
public function setSomeStorage(TYPO3\CMS\Extbase\Persistence\ObjectStorage $storage) {
這必須是:
public function setSomeStorage(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $storage) {

冉冉說
TA貢獻1877條經驗 獲得超1個贊
如果您收到一條錯誤消息,并帶有這樣的前導括號:(1/3)
那么在這種情況下搜索頁面上的所有三個錯誤是值得的。
在我的情況下,最后一條消息錯誤消息提到了語法錯誤,然后該類自然不會加載 - 但我可以糾正語法錯誤,然后一切正常。
- 3 回答
- 0 關注
- 142 瀏覽
添加回答
舉報
0/150
提交
取消