Booleanos com posgresql

Pessoal,

Estou com um problema chato entre o yii e o postgre quanto a campos booleanos. O que acontece é que quando o campo retorna falso(false) a variavel esta vindo vazia e não zero (0). Quando é verdadeiro(true) funciona perfeitamente retornando 1.

Alguém sabe como posso resolver isso?

Obrigado

Fazer o teste !== false pode resolver o seu problema?

Poste o código que está usando que poderemos te ajudar melhor.

seu campo está false ou nulo?

No postgre ele trata os booleanos com os caracteres ‘f’ para falso e ‘t’ para true. Como eu disse se vier ‘t’ o yii transforma em 1 mas se vem ‘f’ ele me manda vazio.

O problema disso é que ao usar o dropDownList ele da erro:

Exemplo:

$data = array(1=>‘ativo’, 0=>‘inativo’);

$form->dropDownList($model, ‘situacao’, $data, array(‘prompt’=>’’));

Quando situacao esta true ele traz o ativo selecionado, porém quando traz false ele mostra a combo como se não tivesse nenhuma opção.

O que eu não quero é ter que em cada um desses lugar programar da montando o html com ifs e elses.

Obrigado a todos.

Pessoal, não sei se alguém resolveu este tópico mas após alguma pesquisa resolvi assim:

  1. Adicionei uma regra no respectivo modelo:

array(‘situacao’, ‘default’, ‘setOnEmpty’ => true, ‘value’ => 0)

  1. Alterei a view para ‘’ no valor false:

echo CHtml::activeRadioButtonList($model, ‘situacao’, array(1 => ‘Ativo’, ‘’ => ‘Inativo’));

Deve haver alguma solução mais geral mas infelizmente não encontrei.

Referência: http://www.yiiframework.com/wiki/10/how-to-automate-timestamps-in-activerecord-models