我想获得所有产品流,其中至少有一个类别。我正在尝试这样做:
$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);
Run Code Online (Sandbox Code Playgroud)
但这总是导致以下错误:
Call to a member function buildAccessor() on null
Run Code Online (Sandbox Code Playgroud)
无论我做什么,我总是收到此错误。我做错了什么或者我将如何存档?
其实很简单。而不是像这样添加过滤器:
new EqualsFilter('categories', null);
Run Code Online (Sandbox Code Playgroud)
你实际上需要这样做:
new EqualsFilter('categories.id', null);
Run Code Online (Sandbox Code Playgroud)
您还可以多次链接它,这允许您按子集合进行过滤:
new EqualsFilter('categories.salesChannel.id', null);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
352 次 |
| 最近记录: |