From b097b6c68226655ed933b829d3ae3ada6f7418cf Mon Sep 17 00:00:00 2001 From: Taylor Otwell Date: Fri, 11 May 2012 13:22:04 -0500 Subject: [PATCH] Fix to_array() in eloquent model. --- laravel/database/eloquent/model.php | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/laravel/database/eloquent/model.php b/laravel/database/eloquent/model.php index c022b682..3af49057 100644 --- a/laravel/database/eloquent/model.php +++ b/laravel/database/eloquent/model.php @@ -607,7 +607,7 @@ public function to_array() // 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 @@ public function to_array() // 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;