yii\db\QueryBuilder::buildHashCondition PHP Méthode

buildHashCondition() public méthode

Creates a condition based on column-value pairs.
public buildHashCondition ( array $condition, array &$params ) : string
$condition array the condition specification.
$params array the binding parameters to be populated
Résultat string the generated SQL expression
    public function buildHashCondition($condition, &$params)
    {
        $parts = [];
        foreach ($condition as $column => $value) {
            if (ArrayHelper::isTraversable($value) || $value instanceof Query) {
                // IN condition
                $parts[] = $this->buildInCondition('IN', [$column, $value], $params);
            } else {
                if (strpos($column, '(') === false) {
                    $column = $this->db->quoteColumnName($column);
                }
                if ($value === null) {
                    $parts[] = "{$column} IS NULL";
                } elseif ($value instanceof Expression) {
                    $parts[] = "{$column}=" . $value->expression;
                    foreach ($value->params as $n => $v) {
                        $params[$n] = $v;
                    }
                } else {
                    $phName = self::PARAM_PREFIX . count($params);
                    $parts[] = "{$column}={$phName}";
                    $params[$phName] = $value;
                }
            }
        }
        return count($parts) === 1 ? $parts[0] : '(' . implode(') AND (', $parts) . ')';
    }