diff --git a/src/Jenssegers/Mongodb/MongodbServiceProvider.php b/src/Jenssegers/Mongodb/MongodbServiceProvider.php index bba2f6fd0..dee5ac076 100644 --- a/src/Jenssegers/Mongodb/MongodbServiceProvider.php +++ b/src/Jenssegers/Mongodb/MongodbServiceProvider.php @@ -14,6 +14,11 @@ public function boot() Model::setConnectionResolver($this->app['db']); Model::setEventDispatcher($this->app['events']); + + if (!defined('SHOULD_RETURN_COLLECTION')) { + $s = explode('.', \Illuminate\Foundation\Application::VERSION); + define('SHOULD_RETURN_COLLECTION', (10 * $s[0] + $s[1]) >= 53); + } } /** diff --git a/src/Jenssegers/Mongodb/Query/Builder.php b/src/Jenssegers/Mongodb/Query/Builder.php index d7a60d4d1..076b42719 100644 --- a/src/Jenssegers/Mongodb/Query/Builder.php +++ b/src/Jenssegers/Mongodb/Query/Builder.php @@ -146,7 +146,7 @@ public function find($id, $columns = []) * Execute the query as a "select" statement. * * @param array $columns - * @return array|static[] + * @return array|static[]|Collection */ public function get($columns = []) { @@ -157,7 +157,7 @@ public function get($columns = []) * Execute the query as a fresh "select" statement. * * @param array $columns - * @return array|static[] + * @return array|static[]|Collection */ public function getFresh($columns = []) { @@ -259,7 +259,7 @@ public function getFresh($columns = []) $results = iterator_to_array($this->collection->aggregate($pipeline, $options)); // Return results - return $results; + return SHOULD_RETURN_COLLECTION ? new Collection($results) : $results; } // Distinct query @@ -274,7 +274,7 @@ public function getFresh($columns = []) $result = $this->collection->distinct($column); } - return $result; + return SHOULD_RETURN_COLLECTION ? new Collection($result) : $result; } // Normal query @@ -317,7 +317,8 @@ public function getFresh($columns = []) $cursor = $this->collection->find($wheres, $options); // Return results as an array with numeric keys - return iterator_to_array($cursor, false); + $results = iterator_to_array($cursor, false); + return SHOULD_RETURN_COLLECTION ? new Collection($results) : $results; } }