diff --git a/src/Illuminate/Database/Eloquent/Collection.php b/src/Illuminate/Database/Eloquent/Collection.php index f9abccd49920..9842cc758200 100755 --- a/src/Illuminate/Database/Eloquent/Collection.php +++ b/src/Illuminate/Database/Eloquent/Collection.php @@ -195,6 +195,10 @@ public function unique($key = null, $strict = false) */ public function only($keys) { + if (is_null($keys)) { + return new static($this->items); + } + $dictionary = Arr::only($this->getDictionary(), $keys); return new static(array_values($dictionary)); diff --git a/src/Illuminate/Support/Collection.php b/src/Illuminate/Support/Collection.php index 46f891f7e22d..db4fcee6251e 100644 --- a/src/Illuminate/Support/Collection.php +++ b/src/Illuminate/Support/Collection.php @@ -698,6 +698,10 @@ public function min($callback = null) */ public function only($keys) { + if (is_null($keys)) { + return new static($this->items); + } + $keys = is_array($keys) ? $keys : func_get_args(); return new static(Arr::only($this->items, $keys)); diff --git a/tests/Database/DatabaseEloquentCollectionTest.php b/tests/Database/DatabaseEloquentCollectionTest.php index 0ddc4d7d3efd..b7c8c1cd1f57 100755 --- a/tests/Database/DatabaseEloquentCollectionTest.php +++ b/tests/Database/DatabaseEloquentCollectionTest.php @@ -233,6 +233,7 @@ public function testOnlyReturnsCollectionWithGivenModelKeys() $c = new Collection([$one, $two, $three]); + $this->assertEquals($c, $c->only(null)); $this->assertEquals(new Collection([$one]), $c->only(1)); $this->assertEquals(new Collection([$two, $three]), $c->only([2, 3])); } diff --git a/tests/Support/SupportCollectionTest.php b/tests/Support/SupportCollectionTest.php index 9c069cc7745c..748c5e85551b 100755 --- a/tests/Support/SupportCollectionTest.php +++ b/tests/Support/SupportCollectionTest.php @@ -1338,6 +1338,7 @@ public function testOnly() { $data = new Collection(['first' => 'Taylor', 'last' => 'Otwell', 'email' => 'taylorotwell@gmail.com']); + $this->assertEquals($data->all(), $data->only(null)->all()); $this->assertEquals(['first' => 'Taylor'], $data->only(['first', 'missing'])->all()); $this->assertEquals(['first' => 'Taylor'], $data->only('first', 'missing')->all());