/**
* {@inheritdoc}
*/
public function addFieldFilter($field, $operator, $value, $locale = null, $scope = null, $options = [])
{
if (Operators::IS_EMPTY !== $operator) {
$this->checkValue($field, $value);
if (FieldFilterHelper::getProperty($field) === FieldFilterHelper::CODE_PROPERTY) {
$value = $this->objectIdResolver->getIdsFromCodes('family', $value);
}
}
$fieldCode = FieldFilterHelper::getCode($field);
switch ($operator) {
case Operators::IN_LIST:
$expr = new Expr();
$this->qb->addAnd($expr->field($fieldCode)->in($value));
break;
case Operators::NOT_IN_LIST:
$this->qb->field($fieldCode)->notIn($value);
break;
case Operators::IS_EMPTY:
$exists = new Expr();
$equals = new Expr();
$expr = new Expr();
$exists->field($fieldCode)->exists(false);
$equals->field($fieldCode)->equals(null);
$expr->addOr($exists)->addOr($equals);
$this->qb->addAnd($expr);
break;
}
return $this;
}