diff --git a/changelog.md b/changelog.md index 1a3bd2c1..b4716a5c 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,13 @@ # Laravel Change Log +## Version 1.5.4 + +- Fix bug in Eloquent belongs_to relationship eager loading. + +### Upgrading From 1.5.3 + +- Replace **system** directory. + ## Version 1.5.3 - Various bug fixes. diff --git a/laravel/db/eloquent/hydrator.php b/laravel/db/eloquent/hydrator.php index 6c7b3d6c..682bd4b3 100644 --- a/laravel/db/eloquent/hydrator.php +++ b/laravel/db/eloquent/hydrator.php @@ -66,13 +66,15 @@ class Hydrator { */ private static function eagerly($eloquent, &$parents, $include) { - // We temporarily spoof the belongs_to key to allow the query to be fetched without - // any problems, since the belongs_to method actually gets the attribute. - $eloquent->attributes[$spoof = $include.'_id'] = 0; + // We temporarily spoof the query attributes to allow the query to be fetched without + // any problems, since the belongs_to method actually gets the related attribute. + $first = reset($parents); + + $eloquent->attributes = $first->attributes; $relationship = $eloquent->$include(); - unset($eloquent->attributes[$spoof]); + $eloquent->attributes = array(); // Reset the WHERE clause and bindings on the query. We'll add our own WHERE clause soon. // This will allow us to load a range of related models instead of only one.