HJ
TCriteria - Array string
Boa noite Senhores,
Estou com o seguinte problema. Vejam se já passaram por isso e se podem me ajudar, por favor.
Estou querendo fazer o carregamento de uma coleção de Objetos.
Acontece que um dos critérios que eu preciso adicionar, é um "número", mas em formato string.
O código:
Estou com o seguinte problema. Vejam se já passaram por isso e se podem me ajudar, por favor.
Estou querendo fazer o carregamento de uma coleção de Objetos.
Acontece que um dos critérios que eu preciso adicionar, é um "número", mas em formato string.
O código:
<?php $motivos = "'100','200','300'"; $criteria1 = new TCriteria; $criteria1->add(new TFilter('motivos','in',$motivos)); print_r($criteria1->dump()); // motivos in (''100','200','300'')?>
O problema é que ao incluir as aspas, o sistema entende que é uma string e adiciona "OUTRAS" aspas, duplicando as aspas no inicio e no final.
Se eu não coloco as aspas, ele entende que são números, e não inclui as aspas em casa código desejado:
<?php $motivos = "100,200,300"; $criteria1 = new TCriteria; $criteria1->add(new TFilter('motivos','in',array($motivos))); print_r($criteria1->dump()); // motivos in ('100,200,300')?>
De qq jeito, não consigo carregar o que preciso, pois o correto seria --- motivos in ('100','200','300'). O que fazer?
Fiz um select forçado para sanar, mas gostaria de usar a classe do framework...
Essa variável $motivos tem que ser um array.
Você pode fazer $motivos = explode(',', $motivos);
ou
Passar direto: $criteria1->add(new TFilter('motivos','in',array(100,200,300)));
Nesse caso você pode usar o prefixo NOESC. Assim o framework utiliza a expressão exatamente como foi informada.