Browse Source

fix where in shortcut and response header casing problem.

Taylor Otwell 12 years ago
parent
commit
d2f35900cd
2 changed files with 8 additions and 6 deletions
  1. 7 5
      laravel/database/query/grammars/grammar.php
  2. 1 1
      laravel/response.php

+ 7 - 5
laravel/database/query/grammars/grammar.php

@@ -397,22 +397,24 @@ class Grammar extends \Laravel\Database\Grammar {
 	 * @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);
 				}
 			}			

+ 1 - 1
laravel/response.php

@@ -89,7 +89,7 @@ class Response {
 	{
 		$this->status = $status;
 		$this->content = $content;
-		$this->headers = $headers;
+		$this->headers = array_change_key_case($headers);
 	}
 
 	/**