Browse Source

Don't use mass assignment in hydrator.

Taylor Otwell 12 years ago
parent
commit
5a59c5f317
1 changed files with 11 additions and 1 deletions
  1. 11 1
      laravel/database/eloquent/query.php

+ 11 - 1
laravel/database/eloquent/query.php

@@ -112,7 +112,17 @@ class Query {
 		{
 			$result = (array) $result;
 
-			$models[$result[$this->model->key()]] = new $class($result, true);
+			$new = new $class(array(), true);
+
+			// We need to set the attributes manually in case the accessible property is
+			// set on the array which will prevent the mass assignemnt of attributes if
+			// we were to pass them in using the constructor or fill methods.
+			foreach ($result as $key => $value)
+			{
+				$new->$key = $value;
+			}
+
+			$models[$result[$this->model->key()]] = $new;
 		}
 
 		if ($include and count($results) > 0)