0 follower

Final Class Yiisoft\Db\Pgsql\Builder\JsonValueBuilder

InheritanceYiisoft\Db\Pgsql\Builder\JsonValueBuilder
ImplementsYiisoft\Db\Expression\ExpressionBuilderInterface

Builds expressions for {@see Yiisoft\Db\Expression\Value\JsonValue} for PostgreSQL Server.

Public Methods

Hide inherited methods

Method Description Defined By
__construct() Yiisoft\Db\Pgsql\Builder\JsonValueBuilder
build() The Method builds the raw SQL from the $expression that won't be additionally escaped or quoted. Yiisoft\Db\Pgsql\Builder\JsonValueBuilder

Method Details

Hide inherited methods

__construct() public method

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

                public function __construct(QueryBuilderInterface $queryBuilder)
{
    $this->baseValueBuilder = new BaseJsonValueBuilder($queryBuilder);
}

            
build() public method

The Method builds the raw SQL from the $expression that won't be additionally escaped or quoted.

public string build ( \Yiisoft\Db\Expression\Value\JsonValue $expression, array &$params = [] )
$expression \Yiisoft\Db\Expression\Value\JsonValue

The expression to build.

$params array

The binding parameters.

return string

The raw SQL that won't be additionally escaped or quoted.

                public function build(ExpressionInterface $expression, array &$params = []): string
{
    $statement = $this->baseValueBuilder->build($expression, $params);
    if ($expression->value instanceof ArrayValue) {
        $statement = 'array_to_json(' . $statement . ')';
    }
    return $statement . $this->getTypeHint($expression);
}