Skip to content
Closed
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion src/Illuminate/Collections/Traits/EnumeratesValues.php
Original file line number Diff line number Diff line change
Expand Up @@ -330,7 +330,7 @@ public function firstWhere($key, $operator = null, $value = null)
*/
public function value($key, $default = null)
{
if ($value = $this->firstWhere($key)) {
if ($value = $this->first()) {
return data_get($value, $key, $default);
}

Expand Down
29 changes: 29 additions & 0 deletions tests/Support/SupportCollectionTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -1144,6 +1144,35 @@ public function testValue($collection)
$this->assertEquals(['value' => 'foo'], $c->value('pivot'));
$this->assertEquals('foo', $c->value('pivot.value'));
$this->assertEquals('bar', $c->where('id', 2)->value('pivot.value'));

// Test falsy values
$c = new $collection([
['id' => 1, 'score' => 0],
['id' => 2, 'score' => 100],
]);

$this->assertSame(0, $c->value('score'));

$c = new $collection([
['id' => 1, 'active' => false],
['id' => 2, 'active' => true],
]);

$this->assertSame(false, $c->value('active'));

$c = new $collection([
['id' => 1, 'code' => '0'],
['id' => 2, 'code' => '123'],
]);

$this->assertSame('0', $c->value('code'));

$c = new $collection([
['id' => 1, 'description' => ''],
['id' => 2, 'description' => 'Some description'],
]);

$this->assertSame('', $c->value('description'));
}

#[DataProvider('collectionClassProvider')]
Expand Down
Loading