Skip to content

Commit 2d2ad04

Browse files
committed
Fix FNSR issue with doctrine.queryBuilderDynamic
1 parent d20ee03 commit 2d2ad04

File tree

3 files changed

+29
-2
lines changed

3 files changed

+29
-2
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
],
88
"require": {
99
"php": "^7.4 || ^8.0",
10-
"phpstan/phpstan": "^2.1.13"
10+
"phpstan/phpstan": "^2.1.34"
1111
},
1212
"conflict": {
1313
"doctrine/collections": "<1.0",

src/Type/Doctrine/QueryBuilder/OtherMethodQueryBuilderParser.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ public function findQueryBuilderTypesInCalledMethod(Scope $scope, MethodReflecti
9898
return;
9999
}
100100

101-
$exprType = $scope->getType($node->expr);
101+
$exprType = $scope->toMutatingScope()->getType($node->expr);
102102

103103
TypeTraverser::map($exprType, static function (Type $type, callable $traverse) use (&$queryBuilderTypes): Type {
104104
if ($type instanceof UnionType || $type instanceof IntersectionType) {

tests/Rules/Doctrine/ORM/data/query-builder-dql.php

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -330,3 +330,30 @@ public function newParent(): void
330330
}
331331

332332
}
333+
334+
class CreateBaseQuery
335+
{
336+
337+
/** @var EntityManager */
338+
private $entityManager;
339+
340+
public function __construct(EntityManager $entityManager)
341+
{
342+
$this->entityManager = $entityManager;
343+
}
344+
345+
public function findPendingPackingNotesToResolve(): array
346+
{
347+
return $this->createBaseQuery()
348+
->select('mye')
349+
->getQuery()
350+
->getResult();
351+
}
352+
353+
private function createBaseQuery(): \Doctrine\ORM\QueryBuilder
354+
{
355+
return $this->entityManager->createQueryBuilder()
356+
->from(MyEntity::class, 'mye');
357+
}
358+
359+
}

0 commit comments

Comments
 (0)