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

--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Responder a