Fuentes,
Seu exemplo não está errado, vai funcionar. Porém, eu acho que ele
fere o MVC, pois você está retornando a view do seu sistema de dentro
do controller. Para mim echo, print, print_r, var_dump e afins são
totalmente letais ao MVC quando usadas fora da view.
Bem, se eu acho que fere, vamos ao modo alternativo:
Eu criaria uma classe de View, calma, não se espantem, isso não é um
bicho de 7 cabeças. Ele é bem simples. Com isso, você faria ali o
gerador de json e todas as regras que você precisa. Você só precisa
implementar a classe e colocar o método render com três parâmetros:
$action, $layout e $file (acho que o nome de cada uma já diz tudo).
Depois, no seu controller, você define $this->view com o nome dessa
classe nova e pronto. Sem gambis, com MVC. :)
Se quiser uma ajuda pra criar a classe de View, posso montar um
protótipo aqui e até postar no blog.
Abraços,
Juan Basso
http://blog.cakephp-brasil.org
On 11 set, 18:29, "Vinicius Brandao" <
vbmen...@gmail.com> wrote:
> Amigo,
>
> Tentei fazer o que você falou mas não funcionou. Retorna esse erro:
>
> *Notice* (8) <javascript:void(0);>: Undefined property:
> UnidadesDeMedidaController::$json
> [*APP/controllers/unidades_de_medida_controller.php*, line *57*]
>
> Isso que você usa é um component é?
>
> 2008/9/11 Vinicius Brandao <
vbmen...@gmail.com>
>
> > hmm
> > realmente a sua solução parece mais simples.
>
> > Obrigado pela ajuda. Acho que viajei um pouco hehehe
>
> > 2008/9/11 Cesar Fuentes <
fuen...@fuentes.be>
>
> >> cara, não entendi muito bem... eu faço isso pra pegar um json:
>
> >> function destaques(){
> >> $agora = date("Y-m-d H:i:s");
> >> $destaques = $this->Texto->find('all', array('conditions'
> >> =>
> >> array('Texto.tipo' => TEXTO_NOTICIA, 'Texto.status' => 2,
> >> 'Texto.data_publicacao <' => $agora), 'order' => 'data_publicacao
> >> desc', 'limit' => 3, 'fields' => array('id', 'titulo', 'resumo')));
> >> foreach($destaques as $destaque){
> >> $destaque['Arquivo'][0]['link_imagem'] =
> >> $this->webroot.'files'.url($destaque['Arquivo'][0]['id'],
> >> $destaque['Arquivo'][0]['extensao']);
> >> $destaques1[] = $destaque;
> >> }
> >> //echo '<pre>'; print_r($destaques1);
> >> echo $this->json->encode($destaques1);
> >> exit;
> >> }
>
> >> 2008/9/10 Vinicius Brandao <
vbmen...@gmail.com>: