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