Class yii\db\conditions\BetweenColumnsConditionBuilder
| Inheritance | yii\db\conditions\BetweenColumnsConditionBuilder | 
|---|---|
| Implements | yii\db\ExpressionBuilderInterface | 
| Uses Traits | yii\db\ExpressionBuilderTrait | 
| Available since version | 2.0.14 | 
| Source Code | https://github.com/yiisoft/yii2/blob/master/framework/db/conditions/BetweenColumnsConditionBuilder.php | 
Class BetweenColumnsConditionBuilder builds objects of yii\db\conditions\BetweenColumnsCondition
Protected Properties
| Property | Type | Description | Defined By | 
|---|---|---|---|
| $queryBuilder | yii\db\QueryBuilder | yii\db\ExpressionBuilderTrait | 
Public Methods
| Method | Description | Defined By | 
|---|---|---|
| __construct() | ExpressionBuilderTrait constructor. | yii\db\ExpressionBuilderTrait | 
| build() | Method builds the raw SQL from the $expression that will not be additionally escaped or quoted. | yii\db\conditions\BetweenColumnsConditionBuilder | 
Protected Methods
| Method | Description | Defined By | 
|---|---|---|
| createPlaceholder() | Attaches $value to $params array and returns placeholder. | yii\db\conditions\BetweenColumnsConditionBuilder | 
| escapeColumnName() | Prepares column name to be used in SQL statement. | yii\db\conditions\BetweenColumnsConditionBuilder | 
Method Details
Defined in: yii\db\ExpressionBuilderTrait::__construct()
ExpressionBuilderTrait constructor.
| public void __construct ( yii\db\QueryBuilder $queryBuilder ) | ||
| $queryBuilder | yii\db\QueryBuilder | |
                public function __construct(QueryBuilder $queryBuilder)
{
    $this->queryBuilder = $queryBuilder;
}
            
        Method builds the raw SQL from the $expression that will not be additionally escaped or quoted.
| public string build ( yii\db\ExpressionInterface $expression, array &$params = [] ) | ||
| $expression | yii\db\ExpressionInterface|yii\db\conditions\BetweenColumnsCondition | The expression to be built. | 
| $params | array | The binding parameters. | 
| return | string | The raw SQL that will not be additionally escaped or quoted. | 
|---|---|---|
                public function build(ExpressionInterface $expression, array &$params = [])
{
    $operator = $expression->getOperator();
    $startColumn = $this->escapeColumnName($expression->getIntervalStartColumn(), $params);
    $endColumn = $this->escapeColumnName($expression->getIntervalEndColumn(), $params);
    $value = $this->createPlaceholder($expression->getValue(), $params);
    return "$value $operator $startColumn AND $endColumn";
}
            
        Attaches $value to $params array and returns placeholder.
| protected string createPlaceholder ( $value, &$params ) | ||
| $value | mixed | |
| $params | array | Passed by reference | 
                protected function createPlaceholder($value, &$params)
{
    if ($value instanceof ExpressionInterface) {
        return $this->queryBuilder->buildExpression($value, $params);
    }
    return $this->queryBuilder->bindParam($value, $params);
}
            
        Prepares column name to be used in SQL statement.
| protected string escapeColumnName ( $columnName, &$params = [] ) | ||
| $columnName | yii\db\Query|yii\db\ExpressionInterface|string | |
| $params | array | The binding parameters. | 
                protected function escapeColumnName($columnName, &$params = [])
{
    if ($columnName instanceof Query) {
        list($sql, $params) = $this->queryBuilder->build($columnName, $params);
        return "($sql)";
    } elseif ($columnName instanceof ExpressionInterface) {
        return $this->queryBuilder->buildExpression($columnName, $params);
    } elseif (strpos($columnName, '(') === false) {
        return $this->queryBuilder->db->quoteColumnName($columnName);
    }
    return $columnName;
}