Nextras/Orm 3.0 builder addSelect

před 2 lety

Barbarossa
Backer | 65
+
0
-

Ahoj,

potřeboval bych v Query builderu použít něco jako

$this->builder()->addSelect('COUNT(tournaments.id) AS totalTournaments');
// předat builder do DbalCollection

dbalcol však takový select ignoruje. Je to vůbec možné předat takto entitě sloupec (property jako virtual třeba)?

Celkově bych potřeboval docílit něčeho takového, aby se to naházelo do colection s entitami:

SELECT tournaments_game.*, COUNT(tournaments.id) AS totalTournaments
 FROM tournaments_game LEFT JOIN tournaments ON tournaments_game.id = tournaments.tournaments_game_id
 GROUP BY tournaments_game.id ORDER BY totalTournaments DESC LIMIT 8

Pokud použiji $this->connection->query tak to vrací Result. Ten se dá nějak aplikovat na entitu – že ybch si to třeba projel přes foreach a nějakým entity-setRawValue bych to použil?

Děkuji za každou radu nebo tip jakým směrem se mám vydat, abych docílil toho co potřebuji.

před 2 lety

Barbarossa
Backer | 65
+
0
-

Jde to easy kdyby to někdo hledal:

// mapper method
public function getGames()
{
 $q = $this->connection->query('whatever');
 return self::toCollection($q); // lze použít pro builder i to query
}

A v entitě pak stačí ten alias (totalTournaments) uvést klasicky jako property

Editoval Barbarossa (2. 2. 2018 14:57)

před měsícem

tomino
Člen | 6
+
0
-

Barbarossa napsal(a):

A v entitě pak stačí ten alias (totalTournaments) uvést klasicky jako property

A ako viem potom vyriesit to, ze ked vytvaram novu entitu, chce to po mne tuto property? Ked ju aj vyplnim, vklada ju do sql dotazu …

před měsícem

chemix
Gold Partner | 1098
+
0
-

strilim od boku, ale nepomohlo by @property-read

před měsícem

hrach
Člen | 1816
+
0
-

Použij {virtual} modifier

před měsícem

tomino
Člen | 6
+
0
-

hrach napsal(a):

Použij {virtual} modifier

Skusal som, no potom mi nenaplni tento atribut. Pouzil som @property-write …