0 follower

Class Yiisoft\Db\QueryBuilder\Condition\Builder\CompareBuilder

InheritanceYiisoft\Db\QueryBuilder\Condition\Builder\CompareBuilder
ImplementsYiisoft\Db\Expression\ExpressionBuilderInterface

Build objects of {@see Equals}, {@see NotEquals}, {@see GreaterThan}, {@see GreaterThanOrEqual}, {@see LessThan}, or {@see LessThanOrEqual} into SQL expressions.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( Yiisoft\Db\QueryBuilder\QueryBuilderInterface $queryBuilder )
$queryBuilder Yiisoft\Db\QueryBuilder\QueryBuilderInterface

                public function __construct(
    private readonly QueryBuilderInterface $queryBuilder,
) {}

            
build() public method

Build SQL for comparison conditions.

public string build ( Yiisoft\Db\QueryBuilder\Condition\Equals|Yiisoft\Db\QueryBuilder\Condition\GreaterThan|Yiisoft\Db\QueryBuilder\Condition\GreaterThanOrEqual|Yiisoft\Db\QueryBuilder\Condition\LessThan|Yiisoft\Db\QueryBuilder\Condition\LessThanOrEqual|Yiisoft\Db\QueryBuilder\Condition\NotEquals $expression, array &$params = [] )
$expression Yiisoft\Db\QueryBuilder\Condition\Equals|Yiisoft\Db\QueryBuilder\Condition\GreaterThan|Yiisoft\Db\QueryBuilder\Condition\GreaterThanOrEqual|Yiisoft\Db\QueryBuilder\Condition\LessThan|Yiisoft\Db\QueryBuilder\Condition\LessThanOrEqual|Yiisoft\Db\QueryBuilder\Condition\NotEquals
$params array
throws Yiisoft\Db\Exception\NotSupportedException

                public function build(ExpressionInterface $expression, array &$params = []): string
{
    $column = $this->prepareColumn($expression->column, $params);
    $value = $this->prepareValue($expression->value, $params);
    $operator = $this->getOperator($expression);
    if ($value === null) {
        return match ($operator) {
            '=' => "$column IS NULL",
            '<>' => "$column IS NOT NULL",
            default => "$column $operator NULL",
        };
    }
    return "$column $operator $value";
}