我想获取所有产品流,其中至少有一个类别。我正在尝试这样做:
$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);
关于php - Shopware 6 - 使用 DAL 过滤实体内的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66424233/