[2.0.12] Database pristup k stlpcu cez alias

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
HappyFace
Člen | 162
+
0
-

Ahoj,

je mozne nejako prinutit activeRow(predpokladam) aby mi vracal vysledky cez nejaky alias?

napr:
z DB dostanem nieco taketo sialene $user->dictionary_dictionary_original_id a ja by som chcel k tomu pristupovat trosku „user friendly“ a iba pouzit alias ‚dictionary‘.. $user->dictionary

ide to niekde jednoducho tieto aliasy setnut?

dakujem

James_Scott
Člen | 55
+
0
-

Podle dokumentace NotORM by to mělo jít.

$table->select($columns[, ...])	Set retrieved columns, can be expression ("col, MD5(col) AS hash")

takže třeba (nezkoušel jsem..)

$this->connection->table('posts')->select('id','long_name AS name');
David Matějka
Moderator | 6445
+
0
-

jestli chces pouze aliasovat sloupecek, bude fungovat to, co pise James_Scott. ulehcit to ale asi nepude. pokud ti jde o to, dostat se kratce k zaznamu, kam ten cizi klic ukazuje, zapis $user->dictionary by mel fungovat a vratit prislusnej zaznam. DiscoveredReflection totiz staci, aby ten retezec byl obsazen v nazvu nejakeho sloupecku s cizim klicem

Editoval matej21 (11. 11. 2013 1:58)

besir
Člen | 170
+
0
-

matej21 napsal(a):

jestli chces pouze aliasovat sloupecek, bude fungovat to, co pise James_Scott. ulehcit to ale asi nepude. pokud ti jde o to, dostat se kratce k zaznamu, kam ten cizi klic ukazuje, zapis $user->dictionary by mel fungovat a vratit prislusnej zaznam. DiscoveredReflection totiz staci, aby ten retezec byl obsazen v nazvu nejakeho sloupecku s cizim klicem

Takze pokid zavolam jen $user->di tak by mi to teoreticky take vratil..??

HappyFace
Člen | 162
+
0
-

dik za odpovede

nejde mi ani o to rychlo sa dostat k zaznamom skor by som chcel docielit odrezanie presneho zavesenia na nazvov stlpeckov v DB
ide oto, ze keby som v tabulke vramci nejakeho refaktoringu menil najaky nazov stlpceka, tak nasledne by som to musel spravit kade-tade po kode a dopatravat to cize ja ako pristupujem k tabulkam cez modely, ten model by obsahoval nejaky array aliasov array(‚db_nazov_stlpca‘ ⇒ ‚model_nazov_stlpca‘,…) takze by som v kode nebol tak viazany na stlpce

myslite, ze by to islo spravit? rozmyslal som ze by tie modely dedili z \Nette\Database\Table\Selection a tam urobil extends pre tie aliasi cize to co navrhoval @James_Scott len problem nastava ak budem pristupovat k inej tabulke na cez FK-cko tam si totiz neviem moc predstavit ako by som prinutil aby si trieda donacitala dalsi model s aliasamy a pristupovala k datam cez ne

vvoody
Člen | 910
+
0
-

Discovered reflecion ktorý spomínal matej21 pomôže len pri stĺpcoch s FK. Použi nejaké ORM, jeho pointa je totiž oddeliť db schému od logiky aplikácie. Tieto aliasy, ako to nazývaš, sa tam nastavujú práve na jednom mieste, v entitách.

HappyFace
Člen | 162
+
0
-

vvoody napsal(a):

Discovered reflecion ktorý spomínal matej21 pomôže len pri stĺpcoch s FK. Použi nejaké ORM, jeho pointa je totiž oddeliť db schému od logiky aplikácie. Tieto aliasy, ako to nazývaš, sa tam nastavujú práve na jednom mieste, v entitách.

parada :) aspon viem co mam presne hladat .. nette to nezvlada? ked spominas, ze mam pouzit nejake ORM ja sa v tom este moc neorientujem ako to stou DB vrstvou v nette skutocne je

David Matějka
Moderator | 6445
+
0
-

pouzij doctrine a mas po problemech ;)

vvoody
Člen | 910
+
0
-

HappyFace: nie, nette database takúto abstrakciu nerieši.