Ir para conteúdo

POWERED BY:

Arquivado

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

P3rukao

Agrupar por categoria e quantidade

Recommended Posts

Galera,

estava vendo aqui a organização do site do Youtube, e estava querendo fazer algo parecido com a página deles: http://www.youtube.com/videos?feature=mh

 

Nessa página ele lista os itens de vídeo, dividindo por categorias, e cada categoria tem um limite de 4 vídeos.

 

Como eu poderia fazer isso com o CAKE?

 

No php puro, eu consegui dessa maneira: http://forum.imasters.com.br/topic/393159-select-join-em-album-de-fotos

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Galera,

estava vendo aqui a organização do site do Youtube, e estava querendo fazer algo parecido com a página deles: http://www.youtube.com/videos?feature=mh

 

Nessa página ele lista os itens de vídeo, dividindo por categorias, e cada categoria tem um limite de 4 vídeos.

 

Como eu poderia fazer isso com o CAKE?

 

No php puro, eu consegui dessa maneira: http://forum.imasters.com.br/topic/393159-select-join-em-album-de-fotos

 

Olá amigo,

tudo bom?

Vamos lá!

No caso você quer pegar os ultimos 4registros de uma tabela apartir de uma categoria correto?

entao lá vai:

Vamos super que os registros que você queira pegar sejam Posts(artigos) e as categorias Category

 

1º Containable

#Set o behavior containable nos models Post e Category
var $actsAs = array('Containable');
[code]


2º Montando consulta
[code]
#Pegar os ultimos 4 posts de uma categoria

$conditions = array(); #suas condições
$contain = array('Post'=>array('fields'=>array('Post.id','Post.title'),'conditions'=>array('Post.status'=>'on'),'limit'=>4,'order'=>array('Post.date'=>'ASC'))); 
#Aqui vai a mágica, o Containable busca os dados que você quiser em suas tebelas relacionais, para isso tem q haver um tipo de relação entre as tabelas

$posts = $this->Category->find('all',array('contain'=>$contain,'conditions'=>$conditions)); #se quiser add os atributos fique a vontade =D

Pronto! Agora sete a variavel para a view e de um "pr" para saber como retornou e faça a iteração que achar melhor!

 

Espero que tenha sido util!

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bacana, obrigado pela dica Edu, vou testar para ver se funciona também.... mas eu consegui utilizando apenas as relações que o próprio cake faz.

 

Na página de Posts, eu mandei listar as categorias com um maior nivel de recursividade, daí ele automaticamente já pega os posts relacionados...


function index() {
//...[font=arial, sans-serif][size=2]stuffs[/size][/font]...		
$this->Categoria->recursive = 2;
$posts = $this->Categoria->find('all', $options);
$this->set(compact('posts'));
}//end action

 

 

 

Mas ficam aí as duas dicas pra quem tiver o mesmo problema... ;)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bacana, obrigado pela dica Edu, vou testar para ver se funciona também.... mas eu consegui utilizando apenas as relações que o próprio cake faz.

 

Na página de Posts, eu mandei listar as categorias com um maior nivel de recursividade, daí ele automaticamente já pega os posts relacionados...


function index() {
//...[font=arial, sans-serif][size=2]stuffs[/size][/font]...		
$this->Categoria->recursive = 2;
$posts = $this->Categoria->find('all', $options);
$this->set(compact('posts'));
}//end action

 

 

 

Mas ficam aí as duas dicas pra quem tiver o mesmo problema... ;)

 

Está sua tambem funciona legal, mas com Containable você tem maior controle sobre os dados que estão vindo!

abraços

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.