Skip to content

Query result type is not recognized if the alias is "attribute" #566

Closed
@julienfalque

Description

@julienfalque
Contributor

When using the query builder, if the queried entity has alias "attribute", the type of the query result is considered mixed instead of list<Entity>. For example, with the following code:

namespace App\Repository;

use App\Entity\Attribute;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;

/**
 * @extends ServiceEntityRepository<Attribute>
 */
class AttributeRepository extends ServiceEntityRepository
{
    public function __construct(ManagerRegistry $registry)
    {
        parent::__construct($registry, Attribute::class);
    }

    /**
     * @return list<Attribute>
     */
    public function all(): array
    {
        return $this->createQueryBuilder('attribute')
            ->getQuery()
            ->getResult();
    }
}

PHPStan will report:

------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
  Line   src/App/Repository/AttributeRepository.php                                                                                          
 ------ -------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
  20     Method App\Repository\AttributeRepository::all() should return list<App\Entity\Attribute> but returns mixed.  
         💡 mixed is not a list.                                                                                                                                             
 ------ --------------------------------------------------------------------------------------------------------------------------------------------------------------------

Changing the alias to any other value fixes the error.

Activity

ondrejmirtes

ondrejmirtes commented on Sep 12, 2024

@ondrejmirtes
Member

We found the culprit. Please subscribe to #608.

github-actions

github-actions commented on Oct 14, 2024

@github-actions

This thread has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

locked as resolved and limited conversation to collaborators on Oct 14, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @ondrejmirtes@julienfalque

        Issue actions

          Query result type is not recognized if the alias is `"attribute"` · Issue #566 · phpstan/phpstan-doctrine