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: ...
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:
<?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...

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (3)


LC

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)));
NR

Nesse caso você pode usar o prefixo NOESC. Assim o framework utiliza a expressão exatamente como foi informada.
<?php$criteria1->add(new TFilter('motivos','in',"NOESC:('100','200','300')"));?>
HJ

Senhores, irei testar logo mais.

Muito obrigado pelo retorno.