我正在使用2个extbase扩展产品和应用程序。在产品扩展中,我已经为产品及其类别创建了TCA。在产品扩展中,一切都按预期工作。
我想在应用程序扩展中使用产品存储库。我使用下面的代码,它工作正常,仅适用于相应的页面。我的要求是我想使用相同的存储库(产品存储库)而不考虑页面ID。
/**
* productsRepository
*
* @var \VENDOR\Products\Domain\Repository\ProductsRepository
* @inject
*/
protected ProductsRepository = NULL;
我可以使用下面的代码,但AFIK只能用于应用程序扩展
$query->getQuerySettings()->setRespectStoragePage(FALSE);
任何人都可以帮我找到解决方案吗?
PS:我没有为应用程序扩展添加任何模型或存储库
答案 0 :(得分:1)
在您的产品ProductsRepository
中,您可以覆盖initializeObject()
方法:
public function initializeObject() {
/** @var $querySettings \TYPO3\CMS\Extbase\Persistence\Generic\QuerySettingsInterface */
$querySettings = $this->objectManager->get('TYPO3\\CMS\\Extbase\\Persistence\\Generic\\QuerySettingsInterface');
$querySettings->setRespectStoragePage(FALSE);
$this->setDefaultQuerySettings($querySettings);
}
它将影响存储库的所有查询,无需调用它们的位置。