diff --git a/laravel/database/query/grammars/grammar.php b/laravel/database/query/grammars/grammar.php index b0c06824..50d2b207 100644 --- a/laravel/database/query/grammars/grammar.php +++ b/laravel/database/query/grammars/grammar.php @@ -397,22 +397,24 @@ public function delete(Query $query) * @param array $bindings * @return string */ - public function shortcut($sql, $bindings) + public function shortcut($sql, &$bindings) { // Laravel provides an easy short-cut notation for writing raw WHERE IN // statements. If (...) is in the query, it will be replaced with the - // correct number of parameters based on the bindings. + // correct number of parameters based on the query bindings. if (strpos($sql, '(...)') !== false) { for ($i = 0; $i < count($bindings); $i++) { - // If the binding is an array, we can just assume it's used to - // fill a "where in" condition, so we will just replace the - // next place-holder in the query with the constraint. + // If the binding is an array, we can just assume it's used to fill a + // where in condition, so we'll just replace the next place-holder + // in the query with the constraint and splice the bindings. if (is_array($bindings[$i])) { $parameters = $this->parameterize($bindings[$i]); + array_splice($bindings, $i, 1, $bindings[$i]); + $sql = preg_replace('~\(\.\.\.\)~', "({$parameters})", $sql, 1); } } diff --git a/laravel/response.php b/laravel/response.php index da3ba84f..c9841403 100644 --- a/laravel/response.php +++ b/laravel/response.php @@ -89,7 +89,7 @@ public function __construct($content, $status = 200, $headers = array()) { $this->status = $status; $this->content = $content; - $this->headers = $headers; + $this->headers = array_change_key_case($headers); } /**