Shopware6-使用DAL过滤实体内的集合

我想获得所有产品流,其中至少有一个类别。我正在尝试这样做:

$criteria = new Criteria();
$criteria->addAssociation('categories');
$criteria->addFilter(new NotFilter(
    NotFilter::CONNECTION_OR,
    [
        new EqualsFilter('categories', null)
        // Also tried this:
        // new EqualsFilter('categories', ['id' => null])
    ]
));
$productStreams = $productStreamRepo->search($criteria, $this->context);

但这总是导致以下错误:

Call to a member function buildAccessor() on null

无论我做什么,我总是收到此错误。我做错了什么或者我将如何存档?

回答

其实很简单。而不是像这样添加过滤器:

new EqualsFilter('categories', null);

你实际上需要这样做:

new EqualsFilter('categories.id', null);

您还可以多次链接它,这允许您按子集合进行过滤:

new EqualsFilter('categories.salesChannel.id', null);


以上是Shopware6-使用DAL过滤实体内的集合的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>