0 follower

Class Yiisoft\Db\QueryBuilder\Condition\Builder\ExistsBuilder

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

Build an object of {@see Exists} or {@see NotExists} 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 {@see Exists} or {@see NotExists}.

public string build ( Yiisoft\Db\QueryBuilder\Condition\Exists|Yiisoft\Db\QueryBuilder\Condition\NotExists $expression, array &$params = [] )
$expression Yiisoft\Db\QueryBuilder\Condition\Exists|Yiisoft\Db\QueryBuilder\Condition\NotExists
$params array
throws Yiisoft\Db\Exception\NotSupportedException

                public function build(ExpressionInterface $expression, array &$params = []): string
{
    $operator = match ($expression::class) {
        Exists::class => 'EXISTS',
        NotExists::class => 'NOT EXISTS',
    };
    $sql = $this->queryBuilder->buildExpression($expression->query, $params);
    return "$operator $sql";
}