function NumericArgument::query
Overrides ArgumentPluginBase::query
File
-
core/
modules/ views/ src/ Plugin/ views/ argument/ NumericArgument.php, line 92
Class
- NumericArgument
- Basic argument handler for arguments that are numeric.
Namespace
Drupal\views\Plugin\views\argumentCode
public function query($group_by = FALSE) {
$this->ensureMyTable();
if (!empty($this->options['break_phrase'])) {
$break = static::breakString($this->argument, FALSE);
$this->value = $break->value;
$this->operator = $break->operator;
}
else {
$this->value = [
$this->argument,
];
}
$placeholder = $this->placeholder();
$null_check = empty($this->options['not']) ? '' : " OR {$this->tableAlias}.{$this->realField} IS NULL";
if (count($this->value) > 1) {
$operator = empty($this->options['not']) ? 'IN' : 'NOT IN';
$placeholder .= '[]';
$this->query
->addWhereExpression(0, "{$this->tableAlias}.{$this->realField} {$operator}({$placeholder})" . $null_check, [
$placeholder => $this->value,
]);
}
else {
$operator = empty($this->options['not']) ? '=' : '!=';
$this->query
->addWhereExpression(0, "{$this->tableAlias}.{$this->realField} {$operator} {$placeholder}" . $null_check, [
$placeholder => $this->argument,
]);
}
}