Cara,
é meio dificil e precoce dizer que é um bug...
Eu já fiz algo parecido e nao tive problemas...
Como está o relacionamento entre os seus models?
Abraços,
On 20 jul, 12:01, "Rodrigo Xavier" <[EMAIL PROTECTED]> wrote:
> coloquei o debug como define('DEBUG', 3); para me retornar mais informações.
>
> Descori que o cake faz um select principal para Empresas e para cada empresa
> retornada ele faz um novo select para os Contatos, o problema esta
> justamente aqui. As conditions valem somente para o primeiro select ou seja,
> para Empresas. Quando coloco a condition referente a Contatos, que só
> aparecerá em outro select, ocorre o erro.
>
> Isso é um bug?
>
> To usando o metodo query para me trazer a informação de maneira correta.
>
> Abraço a todos.
>
> rod
>
> On 7/20/07, Rodrigo Xavier <[EMAIL PROTECTED]> wrote:
>
>
>
>
>
> > Tulio, eu acertei as conditions conforme vc indicou, mas o problema é que
> > a query montada pelo cake não traz o join com a tabela de contatos como traz
> > normalmente (imgino eu) quando o findall é feito sem conditions relacionada
> > a contato.
>
> > Veja abaixo: Não existe nada anormal a principio. Acho que pode ser
> > um bug conforme o Gustavo disse.
>
> > class EmpresasController extends AppController
> > {
> > var $name = "Empresas";
> > var $uses = array("Empresa","Contato");
> > function index()
> > {
> > if(isset($this->data))
> > {
> > if($this->data['Contato']['nome'] != '')
> > $conditions =
> > array("Contato.nome"=>$this->data['Contato']['nome']);
>
> > }
> > else
> > {
> > $data7 =
> > date("Y-m-d",mktime(0,0,0,date('m'),date('d')-7,date('Y')));
> > $conditions = "Empresa.created > '".$data7." 00:00:00'";
> > }
> > $this->set("dados", $this->Empresa->findAll($conditions, array
> > (), null, null, null, 2));
> > }
> > }
>
> > Talvez a solução seja colocar diretamente a query, sei que o cake tem
> > uma função dessas quando todas as opções acabam. Preferia não usar...
> > mas.....
>
> > Abraço,
>
> > rod
>
> > On 7/20/07, Tulio Faria <[EMAIL PROTECTED]> wrote:
>
> > > Opa,
>
> > > seguinte, toma cuidado com as queries. Se você quer mais de uma
> > > condição:
>
> > > $conditions = array("`Model1`.campo"=>valor,
> > > "`Model2`.campo2"=>valor2);
>
> > > e assim por diante...
>
> > > Espero ter ajudado...
>
> > > On 19 jul, 14:26, "Rodrigo Xavier" <[EMAIL PROTECTED]> wrote:
> > > > Prezados,
>
> > > > Estou tentando fazer a seguinte busca: $this->set("dados",
> > > > $this->Empresa->findAll($conditions, array (), null, null, null, 2));
> > > Sendo
> > > > $conditions , paramentros que trago de um input.
>
> > > > Quando não uso conditions os dados me retornam o seguinte:
>
> > > > Array
> > > > (
> > > > [0] => Array
> > > > (
> > > > [Empresa] => Array
> > > > (
> > > > [id] => 87
> > > > [razao] => minha empresa
> > > > )
>
> > > > [Contato] => Array
> > > > (
> > > > [0] => Array
> > > > (
> > > > [id] => 122
> > > > [nome] => fulano
> > > > [Empresa] => Array
> > > > (
> > > > [id] => 87
> > > > [razao] => minha empresa
> > > > )
> > > > )
>
> > > > [1] => Array
> > > > (
> > > > [id] => 123
> > > > [nome] => beltrano
> > > > [Empresa] => Array
> > > > (
> > > > [id] => 87
> > > > [razao] => minha empresa
> > > > )
> > > > )
> > > > )
> > > > )
>
> > > > }
>
> > > > Porém quando coloco algo tipo:
>
> > > > $conditions = "1=1";
> > > > if($this->data['Contato']['nome'] != '')
> > > > $conditions .= " and Contato.nome like
> > > > '%".$this->data['Contato']['nome']."%'";
>
> > > > e mando executar o $this->set("dados",
> > > $this->Empresa->findAll($conditions,
> > > > array (), null, null, null, 2)); ele da o seguinte erro:
> > > > 1109: Unknown table 'Contato' in where clause
>
> > > > Pergunto: Como pode dar erro de Unknown table se quando não não tinha
> > > a
> > > > condition ele trazia o contato?
> > > > O correto seria o cake me retornar a mesma resposta (o array com as
> > > > empresas), porém delimitada pelo condition. certo?
>
> > > > Sds,
> > > > Rod
>
> > --
> > Rodrigo Guimarães
> > Desenvolvedor Web
>
> --
> Rodrigo Guimarães
> Desenvolvedor Web
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Cake PHP Português" dos
Grupos do Google.
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para [EMAIL PROTECTED]
Para mais opções, visite este grupo em
http://groups.google.com/group/cake-php-pt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---