CakePHP - 列出按program_id分组的条目

时间:2011-10-09 21:02:01

标签: php mysql sql cakephp

我的模型之间有以下关系

Program hasMany Classroom
Classroom belongsTo Program

我想要实现的是显示按程序分组的所有教室,例如:

计划1

-Classroom 1

-Classroom 2

-Classroom 3

计划2

-Classroom 1

-Classroom 2 ... etc

我在ClassroomsController中的索引操作:

    function index() {

    $this->Access->grantAdmin();

    $this->Classroom->recursive = 1;
    $this->set('classrooms', $this->paginate());
}

我试着用这个:

    var $paginate = array(
    'group' => 'program_id'
);

但它没有像我预期的那样奏效。有任何想法吗?感谢

1 个答案:

答案 0 :(得分:2)

尝试添加:

var $actsAs = array('Containable');

到程序模型。然后在控制器中:

$programs = $this->Classroom->Program->find('all', array(
    'contain' => array(
        'Classroom',
    ),
));
$this->set(compact('programs'));

这应该返回您正在寻找的层次结构中的数据。有关详细信息,请参阅Containable behaviour文档。请注意,如果使用Containable,则不需要$this->Classroom->recursive语句。

您自己的代码示例显示您正在使用分页。通过查看文档可以很容易地将可包含和分页放在一起。