存储库查询中的 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
}
}
}
}
我正在将 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
}
}
}
}