CakePHP - список записей, сгруппированных по program_id - PullRequest
0 голосов
/ 10 октября 2011

У меня есть следующие отношения между моими моделями

Program hasMany Classroom
Classroom belongsTo Program

Я пытаюсь отобразить все классы, сгруппированные по программам, например:

Программа 1

-Класс 1

- класс 2

-Класс 3

Программа 2

-Класс 1

- класс 2 ... и т. Д.

Мое индексное действие в ClassroomsController:

    function index() {

    $this->Access->grantAdmin();

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

Я пытался использовать это:

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

Но это не сработало, как я ожидал. Есть идеи? Спасибо

1 Ответ

2 голосов
/ 10 октября 2011

Попробуйте добавить:

var $actsAs = array('Containable');

к модели Программы.Затем в контроллере:

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

Это должно вернуть ваши данные в иерархии, которую вы ищете.См. Документацию Containable поведения для более подробной информации.Обратите внимание, что вам не нужен оператор $this->Classroom->recursive, если вы используете Containable.

Ваш собственный пример кода показывает, что вы используете нумерацию страниц.Должно быть довольно легко соединить содержимое и нумерацию страниц, просматривая документы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...