From b2ee269e7f2973ba7f5344577264e2ec11fb6f9c Mon Sep 17 00:00:00 2001 From: standaniels Date: Tue, 1 Jun 2021 09:08:43 +0200 Subject: [PATCH 1/2] Add test to show bug --- .../DatabaseEloquentCollectionTest.php | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) 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; From 46ffebf76d142101efefccc371307002d3cf3d81 Mon Sep 17 00:00:00 2001 From: standaniels Date: Tue, 1 Jun 2021 10:05:09 +0200 Subject: [PATCH 2/2] Remove any keys from queueable relations array --- src/Illuminate/Database/Eloquent/Collection.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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)); } }