Orm 类型3 Extbase:findByParent
我在extbase扩展中有一个名为“article”的聚合根对象,它有多个子对象“product”(1:n)。如何在productRepository中查找DbyArticle(因此在子repo中查找DbyParent)。我无法以正常的方式获取所需父对象的子记录,因为我需要通过ajax调用加载产品项,并需要对请求设置偏移量、限制和不同排序。(如果我只得到文章的子项,这是不可能的)Orm 类型3 Extbase:findByParent,orm,typo3,extbase,Orm,Typo3,Extbase,我在extbase扩展中有一个名为“article”的聚合根对象,它有多个子对象“product”(1:n)。如何在productRepository中查找DbyArticle(因此在子repo中查找DbyParent)。我无法以正常的方式获取所需父对象的子记录,因为我需要通过ajax调用加载产品项,并需要对请求设置偏移量、限制和不同排序。(如果我只得到文章的子项,这是不可能的) 感谢您的帮助我认为您必须在存储库中实现自己的功能 有关各种可能性的概述,请参见: 如果无法使用正常的findByAr
感谢您的帮助我认为您必须在存储库中实现自己的功能 有关各种可能性的概述,请参见:
如果无法使用正常的
findByArticleId()
则必须在(子)存储库中使用自定义方法:
比如:
public function findByArticleId($acticleId){
$query = $this->createQuery();
$query->matching(
$query->logicalAnd(
$query->equals('articleId', $acticleId ),
$query->equals('something', 'else')
)
);
$query->setOffset(10);
$query->setLimit(20);
return $query->execute();
}
正如您所见,您可以设置限制和偏移量,或者从存储库中获取所需内容
详细信息可在此处找到:(感谢Max)如果您有ProductRepository,并且您希望通过除文章对象之外的任何其他对象访问产品,则您的文章不是一篇文章 我建议在Article类中实现此逻辑。它应该包含对包含产品的ObjectStorage对象的引用。应该可以从该存储中获得数量有限的产品。显然,您已经拥有文章ID,因此您可以轻松找到您的文章及其产品。出于性能方面的原因,文章中对其产品的引用应该分别有注释
@lazy
(TYPO3 8.7)<代码>@TYPO3\CMS\Extbase\Annotation\ORM\Lazy(TYPO3 9.5)