Odkazy: dibi | API reference

Forum: [česky] [english]

dibi fórum

tiny ‘n’ smart
database layer

Nejste přihlášen(a)

#1 před 2 lety

jtousek
dibi guru
Registrovaný: 17. 11. 2009
Příspěvky: 506

dibi, Postgres, boolean a checkbox

Zdravím,

narazil jsem na drobný problém s databází PostrgeSQL. Typ boolean totiž vrací jako ‚f‘ a ‚t‘. Dibi to na boolean nepřetypuje a vrátí tak jak je.

Takto získaná data pomocí $form->setDefault($row); (Nette) dám do formuláře – jenže checkbox, který má v databázi ‚f‘, tedy FALSE, je zaškrtnutý.

Lze toto opravit nějak obecně? Ideálně přímo aby dibi tato data správně přetypovalo anebo nastavit Postgres aby vracel normálně ‚TRUE‘ a ‚FALSE‘.


Opakování je matkou chyb, aneb dělej vše jen jednou!

 

#2 před 2 lety

PetrP
Moderator
Registrovaný: 15. 7. 2008
Příspěvky: 657

Re: dibi, Postgres, boolean a checkbox

http://forum.nette.org/…n-a-checkbox?…

David Grudl napsal(a):

Mělo by to jít udělat pomocí $result->setType('polozka', Dibi::BOOL)

 

#3 před rokem

VeN
Člen
Registrovaný: 16. 4. 2010
Příspěvky: 49

Re: dibi, Postgres, boolean a checkbox

Ahoj,

narazil jsem na ten samý problém a přemýšlel nad tím, zda to je možné nějakým rozumným způsobem vyřešit na straně postgresql Dibi driveru a myslím, že ne. Znamenalo by to totiž jeden SQL dotaz navíc, protože nemůžeme každé „t“ a „f“ přetypovávat na boolean, protože to by u textových sloupečků nadělalo ještě více neplechy.

Takže asi zatím nelze doporučit lepší řešení, než s explicitním definovaním typu přes setType().

 

#4 před rokem

papo
Nový člen
Registrovaný: 17. 11. 2008
Příspěvky: 3

Re: dibi, Postgres, boolean a checkbox

Mozno by stacilo pouzit v postgrese pretypovanie na int „select true::int, false::int;“. Nulu uz berie php v booleane ako FALSE.

 

#5 před rokem

VeN
Člen
Registrovaný: 16. 4. 2010
Příspěvky: 49

Re: dibi, Postgres, boolean a checkbox

papo napsal(a):

Mozno by stacilo pouzit v postgrese pretypovanie na int „select true::int, false::int;“. Nulu uz berie php v booleane ako FALSE.

Problem je ale ten, že to stejně musíš řešit u každého dotazu zvlášť, což mi přijde skoro stejné, jako nastavit typ resultu, jak už bylo řečeno.

Ale jo, někomu to může stačit.

 

#6 před rokem

jtousek
dibi guru
Registrovaný: 17. 11. 2009
Příspěvky: 506

Re: dibi, Postgres, boolean a checkbox

Jo, myslím, že mi tohle přetypování trochu pomůže. :) Není to ideální, ale asi to bude stačit na dlouhodobé řešení. Díky.


Opakování je matkou chyb, aneb dělej vše jen jednou!

 

#7 před rokem

David Grudl
Administrator
Registrovaný: 8. 2. 2005
Příspěvky: 5548

Re: dibi, Postgres, boolean a checkbox

Taky lze použít automatické detekce typů – buď nad každým dotazem zavolat detectTypes(), nebo v konfiguraci připojení uvést 'result' => array('detectTypes' => TRUE).

 

Zápatí