Browse Source

Fix to_array() in eloquent model.

Taylor Otwell 12 years ago
parent
commit
b097b6c682
1 changed files with 6 additions and 2 deletions
  1. 6 2
      laravel/database/eloquent/model.php

+ 6 - 2
laravel/database/eloquent/model.php

@@ -607,7 +607,7 @@ abstract class Model {
 			// If the relationship is not a "to-many" relationship, we can just
 			// to_array the related model and add it as an attribute to the
 			// array of existing regular attributes we gathered.
-			if ( ! is_array($models))
+			if ($models instanceof Model)
 			{
 				$attributes[$name] = $models->to_array();
 			}
@@ -615,13 +615,17 @@ abstract class Model {
 			// If the relationship is a "to-many" relationship we need to spin
 			// through each of the related models and add each one with the
 			// to_array method, keying them both by name and ID.
-			else
+			elseif (is_array($models))
 			{
 				foreach ($models as $id => $model)
 				{
 					$attributes[$name][$id] = $model->to_array();
 				}
 			}
+			elseif (is_null($models))
+			{
+				$attributes[$name] = $models;
+			}
 		}
 
 		return $attributes;