Open bedfir opened 7 months ago
Please make sure you have the latest versions of PHPStan and phpstan-doctrine installed. And please make sure you have configured objectManagerLoader. See the README here.
I think this is because getArrayResult
is not supported yet.
You may avoid the issue with getResult()
until https://github.com/phpstan/phpstan-doctrine/pull/520 is merged.
In short:
/**
* @return array<int, array{'id': int}>
*/
public function foo(): array
{
$queryBuilder = $this->createQueryBuilder('e')
$queryBuilder->select('e.id');
return $queryBuilder->getQuery()->getArrayResult();
}
PHPStan is reporting:
Method ... should return array<int, array{id: int}> but returns array.
@ThomasLandauer getArrayResult has been reverted again in phpstan-doctrine 1.4.4.
OK, so the relevant PR is now https://github.com/phpstan/phpstan-doctrine/pull/593 ?
Yes
Currently you can resolve your issue by using getResult
/**
* @return array<int, array{'id': int}>
*/
public function foo(): array
{
$queryBuilder = $this->createQueryBuilder('e')
$queryBuilder->select('e.id');
return $queryBuilder->getQuery()->getResult();
}
Hi All,
I encountered an issue where PHPStan threw an incorrect error regarding method return type declaration. Here's the scenario:
Problem: I have a method getData() in my codebase which fetches data from the database and returns an array of associative arrays. The return type declaration of this method is specified accurately. However, PHPStan still throws this error suggesting that the return type is incorrect.
Additional Information: "php": ">=8.3", "phpstan/extension-installer": "^1.3.1", "phpstan/phpstan": "^1.10.47", "phpstan/phpstan-deprecation-rules": "^1.1.4", "phpstan/phpstan-doctrine": "^1.3.53", "phpstan/phpstan-phpunit": "^1.3.15", "phpstan/phpstan-symfony": "^1.3.5",
Thank you for your attention to this matter. Please let me know if you need any further information or clarification.