Final Class Yiisoft\Db\QueryBuilder\Condition\Builder\LogicalBuilder
| Inheritance | Yiisoft\Db\QueryBuilder\Condition\Builder\LogicalBuilder |
|---|---|
| Implements | Yiisoft\Db\Expression\ExpressionBuilderInterface |
Build an object of {@see AndX} or {@see OrX} into SQL expressions.
Public Methods
| Method | Description | Defined By |
|---|---|---|
| __construct() | Yiisoft\Db\QueryBuilder\Condition\Builder\LogicalBuilder | |
| build() | Build SQL for {@see AndX} or {@see OrX}. | Yiisoft\Db\QueryBuilder\Condition\Builder\LogicalBuilder |
Method Details
| public mixed __construct ( Yiisoft\Db\QueryBuilder\QueryBuilderInterface $queryBuilder ) | ||
| $queryBuilder | Yiisoft\Db\QueryBuilder\QueryBuilderInterface | |
public function __construct(
private readonly QueryBuilderInterface $queryBuilder,
) {}
Build SQL for {@see AndX} or {@see OrX}.
| public string build ( Yiisoft\Db\QueryBuilder\Condition\AndX|Yiisoft\Db\QueryBuilder\Condition\OrX $expression, array &$params = [] ) | ||
| $expression | Yiisoft\Db\QueryBuilder\Condition\AndX|Yiisoft\Db\QueryBuilder\Condition\OrX | |
| $params | array | |
| throws | InvalidArgumentException | |
|---|---|---|
| throws | Yiisoft\Db\Exception\NotSupportedException | |
public function build(ExpressionInterface $expression, array &$params = []): string
{
$parts = $this->buildExpressions($expression->expressions, $params);
if (empty($parts)) {
return '';
}
if (count($parts) === 1) {
return (string) reset($parts);
}
$operator = match ($expression::class) {
AndX::class => 'AND',
OrX::class => 'OR',
};
return '(' . implode(") $operator (", $parts) . ')';
}
Signup or Login in order to comment.