对类似条目进行分组

时间:2011-04-05 13:33:35

标签: cakephp cakephp-1.3

我有两个表,帖子和类别,帖子有category_id

我可以获得所有post_name | category_id

使用$ post [Category] ​​[name],我可以

Post  |  Category       

Hello  |  php 
World  |  php    
Hi     |  php 
Earth  |  php
Hello1 |  asp 
World1 |  asp    
Hi1    |  asp 
Earth1 |  asp

如何获得:

php

Hello  
World    
Hi     
Earth 

asp

Hello1 
World1   
Hi1    
Earth1

它的小组但是Logic已经走了,不知道如何得到它们

编辑:我认为首先应该有第一个循环获得分类而不是第二个内部获得帖子post.cat_id = cat.id但是以蛋糕的方式我不知道我该怎么做。

2 个答案:

答案 0 :(得分:1)

使用find()检索数据时,您可以使用参数指定要分组的内容。 以下是食谱http://book.cakephp.org/view/1018/find

中的相关章节

编辑忽略上面的

所以你应该

categories = array('Category'=> array('name'=>'php','Posts'=> array()...);

在你看来,你有:

<?php
foreach($categories as $category) {
    echo $category['name'];
    foreach($category['Posts'] as $post) {
        echo $post['name'];
    }
} ?>

答案 1 :(得分:1)

您可以使用Category控制器中的一个查询和视图中的嵌套循环执行此操作:

<{1>}控制器中的

Category

并在视图中:

function some_action () {
   $options = array (
      'recursive' => 1,
      'order' => array ( 'Category.name' => 'asc' )
   );
   $categories = $this->Category->find ( 'all', $options );
   $this->set ( 'categories', $categories );
}
相关问题