Set the bindings on the query builder.
public setBindings ( array $bindings, string $type = 'where' ) | ||
$bindings | array | |
$type | string |
protected function compileJoins(LaravelBaseBuilder $query, $joins) { $sql = array(); $query->setBindings(array(), 'join'); foreach ($joins as $join) { $table = $this->wrapTable($join->table); // First we need to build all of the "on" clauses for the join. There may be many // of these clauses so we will need to iterate through each one and build them // separately, then we'll join them up into a single string when we're done. $clauses = array(); foreach ($join->clauses as $where) { if (isset($where['type'])) { $method = "where{$where['type']}"; $clauses[] = $where['boolean'] . ' ' . $this->{$method}($query, $where); } else { $clauses[] = $this->compileJoinConstraint($where); } } foreach ($join->bindings as $binding) { $query->addBinding($binding, 'join'); } // Once we have constructed the clauses, we'll need to take the boolean connector // off of the first clause as it obviously will not be required on that clause // because it leads the rest of the clauses, thus not requiring any boolean. $clauses[0] = $this->removeLeadingBoolean($clauses[0]); $clauses = implode(' ', $clauses); $type = $join->type; // Once we have everything ready to go, we will just concatenate all the parts to // build the final join statement SQL for the query and we can then return the // final clause back to the callers as a single, stringified join statement. $sql[] = "{$type} join {$table} on ({$clauses})"; } return implode(' ', $sql); }
/** * Set the bindings on the query builder. * * @param array $bindings * @param string $type * @return $this * @throws \InvalidArgumentException * @static */ public static function setBindings($bindings, $type = 'where') { return \Illuminate\Database\Query\Builder::setBindings($bindings, $type); }
/** * Remove scope constraint from the query. * * @param \Illuminate\Database\Query\Builder $builder * @param int $key * @return void */ protected function removeBinding(BaseBuilder $query, $key) { $bindings = $query->getRawBindings()['where']; unset($bindings[$key]); $query->setBindings($bindings); }
/** * Set the bindings on the query builder. * * @param array $bindings * @return \Illuminate\Database\Query\Builder * @static */ public static function setBindings($bindings) { return \Illuminate\Database\Query\Builder::setBindings($bindings); }
/** * Remove bindings from the query builder. * * @param \Illuminate\Database\Query\Builder $query * @param integer $key * @param integer $count * @return void */ protected function removeBindings(Query $query, $key, $count) { $bindings = $query->getRawBindings()['where']; array_splice($bindings, $key, $count); $query->setBindings($bindings, 'where'); }