Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Renan Augusto

[Resolvido] Função Agregada

Recommended Posts

Desenvolvedores,

 

Estou fazendo um consulta da seguinte forma:

$this->Respostas->find('all',array('fields'=>'date_format(created,"%d/%m/%Y") created'));

O cake está me retornando um array assim:

Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [created] => 20/05/2010
                )

        )

)
Todos sabemos que a primeira possição o array indica a linha, a segunda indica o model e a terceira o campo selecionado

 

Minha pergunta é:

Tem alguma forma de colocar o nome do model da forma correta? ou seja, tirar o 0 e colocar Respostas

Compartilhar este post


Link para o post
Compartilhar em outros sites

Estranho, isso ja era para estar acontecendo.

O nome do seu model é mesmo "Respostas" e não "Resposta"?

Mostre o seu model e o lugar onde você faz este find no controller.

Qual sua versão do cake?

Tente também tirar o date_format (so pra teste, pode ser o causador dos prolemas) e ponhar uns fields normais.

OBS: Cole o dump do mysql

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado Lucas,

 

O model é Resposta. Desculpe acho que foi um erro de digitação

o método é o index mesmo, está bem simples assim:

 

function index(){

$this->Resposta->find('all',array('fields'=>'fields'=>'date_format(created,"%d/%m/%Y") created'))

}

 

o Model também está simples nem tem relacionamento e nem validação, está simplesmente assim:

class Resposta extends AppModel{

var $name = 'Resposta';

}

 

esse problema sempre deu comigo, em todas as versões que usei, eu fiz o teste na 1.3

 

Se eu tirar o date_format ele funciona beleza, mas o problema é justamente quando usamos funções agregadas.

 

Cara, parece inacreditável mas sempre acontece isso!!!

faça um teste!!!

 

Novamente obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Lucas,

Acho que isso não é o ideal, pois:

1 resolveria o problema da formatação de data e não e de todas funções agregadas

2 eu teria que colocar esse helper em todas as views que usam esse campo

Acho que podemos concluir que o Cake não dá um bom suporte a funções a gregadas do banco de dados.

 

Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

DESCOBRI!!!!

eis a solução:

 

$this->TbUsuario->find('all',array('fields'=>'date_format(created,"%d/%m/%Y") TbUsuario__created))

repare que nessa consulta o alias do campo está o nomeDoModel__campo

 

depois vá no seu model e configure o atributo

var $virtualFields = array('created'=>'created');

 

só isso!!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.