diff --git a/laravel/database/eloquent/model.php b/laravel/database/eloquent/model.php index 2c28b8f9..2ad1c72b 100644 --- a/laravel/database/eloquent/model.php +++ b/laravel/database/eloquent/model.php @@ -253,7 +253,27 @@ abstract class Model { */ public function _with($includes) { - $this->includes = (array) $includes; + $includes = (array) $includes; + + $all_includes = array(); + + foreach($includes as $include) + { + $nested = explode('.', $include); + + $inc = array(); + + foreach($nested as $relation) + { + $inc[] = $relation; + + $all_includes[] = implode('.', $inc); + } + + } + + //remove duplicates and reset the array keys. + $this->includes = array_values(array_unique($all_includes)); return $this; }