diff --git a/src/Illuminate/Database/Eloquent/Collection.php b/src/Illuminate/Database/Eloquent/Collection.php index e8435ce3dbc0..c1323f8812ed 100755 --- a/src/Illuminate/Database/Eloquent/Collection.php +++ b/src/Illuminate/Database/Eloquent/Collection.php @@ -692,7 +692,7 @@ public function getQueueableRelations() } elseif (count($relations) === 1) { return reset($relations); } else { - return array_intersect(...$relations); + return array_intersect(...array_values($relations)); } } diff --git a/tests/Database/DatabaseEloquentCollectionTest.php b/tests/Database/DatabaseEloquentCollectionTest.php index 8c854a163247..7823e45e177f 100755 --- a/tests/Database/DatabaseEloquentCollectionTest.php +++ b/tests/Database/DatabaseEloquentCollectionTest.php @@ -485,6 +485,28 @@ public function getQueueableRelations() $this->assertEquals(['user'], $c->getQueueableRelations()); } + public function testQueueableRelationshipsIgnoreCollectionKeys() + { + $c = new Collection([ + 'foo' => new class + { + public function getQueueableRelations() + { + return []; + } + }, + 'bar' => new class + { + public function getQueueableRelations() + { + return []; + } + }, + ]); + + $this->assertEquals([], $c->getQueueableRelations()); + } + public function testEmptyCollectionStayEmptyOnFresh() { $c = new Collection;