我的模型之间有以下关系
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'
);
但它没有像我预期的那样奏效。有任何想法吗?感谢
答案 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
语句。
您自己的代码示例显示您正在使用分页。通过查看文档可以很容易地将可包含和分页放在一起。