存储库查询中的 table 不正确(LTS 7.6 升级)

Not the right table in repository query (upgrade for LTS 7.6)

我正在将 TYPO3 LTS 6.2 升级到 LTS 7.6。

我有一个扩展程序 (extExtended),它使用新字段和新操作扩展新闻扩展程序。一切正常(BE、FE 和 DB)。

我制作了另一个扩展程序 (extSearch),它扩展了具有搜索功能的新闻。

我的搜索动作return没什么,因为查询的数据库table不是新闻之一。它正在寻找以 extSearch 扩展名命名的 table。

所以 extExtended->EventController 扩展 GeorgRinger\News\Controller, extExyended->NewsRepository 扩展 GeorgRinger\News\Domain\Repository\NewsRepository

extSearch->SearchController 扩展 GeorgRinger\News\Controller

我错过了什么?

您需要一个模型:

namespace <Vendor>\<Extkey>\Domain\Model;

/**
 * Class Page
 * @package <Vendor>\<Extkey>\Domain\Model
 */
class Page extends \TYPO3\CMS\Extbase\DomainObject\AbstractEntity {

    /**
     * @var string
     */
    protected $title;

    /**
     * @var string
     */
    protected $subtitle;

    public function getTitle() {
    return $this->title;
    }

    public function getSubtitle() {
        return $this->subtitle;
    }
}

一个存储库:

namespace <Vendor>\<Extkey>\Domain\Repository;

/**
 * Class PageRepository
 *
 * @package <Vendor>\<Extkey>\Domain\Repository
 */
class PageRepository extends \TYPO3\CMS\Extbase\Persistence\Repository {

    public function findPages() {
    $query = $this->createQuery();
//      $query->getQuerySettings()->setRespectStoragePage(FALSE);

    return $query->execute();
    }
}

并通过拼写错误映射 table:

plugin.tx_<extkey> {
    persistence {
        storagePid = 2
    classes {
        <Vendor>\<Extkey>\Domain\Model\Page {
                mapping {
            tableName = pages
        }
            }
    }
    }
}

我将此 TypoScript 放入我的 extExtended 设置中并且它有效

config.tx_extbase {
    persistence {
        Vendor\extensionKey\Domain\Model\News {
            mapping {
                tableName = tx_news_domain_model_news
            }
        }
    }
}