dentification Variable as used in join path expression but was not defined before

32 views Asked by At

i have a relation between 3 entities.

I want to turn this code to a queryBuildr to call it in my Handler class;

        $assetSpaces = $asset->getAssetSpaces();
        $resourceMeters = [];
        foreach ($assetSpaces as $assetSpace) {
            $spaceId = $assetSpace->getSpaceId();
            $resourceMeters = $this>resourceMeterRepository>findResourceMetersBySpaceId($spaceId);
        }

that means, for each Asset entity i have many AssetSpaces and for each AssetSpace i have many ResourceMeters!

i wrote like that;

    public function findResourceMetersByAssetId(int $assetId): array
    {
        
        $items = $this->createQueryBuilder('e')
            ->join('e.assetSpace', 'as')
            ->join('as.asset', 'a')
            ->where('a.id = :assetId')
            ->setParameter('assetId', $assetId)
            ->getQuery()
            ->getResult();

        return $items;
    } 

but it gives me an error:

[Semantical Error] line 0, col 90 near '.asset a WHERE': Error: Identification Variable as used in join path expression but was not defined before.

how can i make it right?

or is that better to make a query for that when i have finctions?

i did some changes but it make it worst

0

There are 0 answers