code: protected function validateOperatorCondition($operator, $condition, $attribute = null)
      {
          if ($attribute === null) {
              // absence of an attribute indicates that operator has been placed in a wrong position
              $this->addError($this->filterAttributeName, $this->parseErrorMessage('operatorRequireAttribute', ['operator' => $operator]));
              return;
          }
  
          $internalOperator = $this->filterControls[$operator];
  
          // check operator type :
          $operatorTypes = $this->operatorTypes[$internalOperator];
          if ($operatorTypes !== '*') {
              $attributeTypes = $this->getSearchAttributeTypes();
              $attributeType = $attributeTypes[$attribute];
              if (!in_array($attributeType, $operatorTypes, true)) {
                  $this->addError($this->filterAttributeName, $this->parseErrorMessage('unsupportedOperatorType', ['attribute' => $attribute, 'operator' => $operator]));
                  return;
              }
          }
  
          if (in_array($internalOperator, $this->multiValueOperators, true)) {
              // multi-value operator:
              if (!is_array($condition)) {
                  $this->addError($this->filterAttributeName, $this->parseErrorMessage('operatorRequireMultipleOperands', ['operator' => $operator]));
              } else {
                  foreach ($condition as $v) {
                      $this->validateAttributeValue($attribute, $v);
                  }
              }
          } else {
              // single-value operator :
              $this->validateAttributeValue($attribute, $condition);
          }
      }
docs: Validates operator condition.
  @param string $operator raw operator control keyword.
  @param mixed $condition attribute condition.
  @param string $attribute attribute name.