Cakephp - связанная таблица

в методе просмотра я скачал из базы данных всех связанных студентов с таблицей «Курсы», добавив разбивку на страницы.

$this->paginate = [
        'order' => ['id' => 'desc'],
        'conditions' => ['Students.course_id =' => $id]
    ];
    $students = $this->paginate($this->Students);
    $this->set(compact('students'));

В представлении (view.ctp) я отображаю всю таблицу благодаря foreach. В первом столбце я хочу, чтобы отображался номер заказа. Я пытался использовать $ key с foreach, но если я перейду на другую сторону, числа обнуляются, и я не могу использовать ID.

<?php foreach ($students as $key => $student): ?>
        <tr>
            <td><?= h($key) ?></td>

Я хочу что-то вроде этого:

Страница 1

|------------|-----------|---------------|
|      LP    |     ID    |    NAME       |
|------------|-----------|---------------|
|      1     |     5437  |    Mark       |
|------------|-----------|---------------|
|      2     |     67    |    John       |
|------------|-----------|---------------|
|      3     |     12    |    Lisa       |
|------------|-----------|---------------|
|      4     |     63    |    John       |
|------------|-----------|---------------|
|      5     |     657   |    Lisa       |
|------------|-----------|---------------|

Страница 2

|------------|-----------|---------------|
|      LP    |     ID    |    NAME       |
|------------|-----------|---------------|
|      6     |    5431   |    Michael    |
|------------|-----------|---------------|
|      7     |   36554   |    Lara       |
|------------|-----------|---------------|
|      8     |     99    |    Anne       |
|------------|-----------|---------------|
|      9     |     76    |    Luke       |
|------------|-----------|---------------|
|      10    |     351   |    Chris      |
|------------|-----------|---------------|
0
0
42
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

$key в данном случае - это просто индекс элемента массива, поэтому его значения будут одинаковыми на каждой странице. Если вам нужно вывести какой-то идентификатор, связанный с вашей записью, вы должны использовать поле из базы данных.

Ответ принят как подходящий

ваша проблема в том, что $ key - это индекс массива, а не номер записи. каждый раз при создании страницы разбиения на страницы ключ массива начинается с 0 (нуля). Чтобы получить номер записи, вы должны изменить h ($ key) на ($ key + 1) + ($ limit * ($ page-1))

** Обновить **

$ page = количество страниц с разбивкой на страницы, которые вы хотите показать

$ limit = количество записей на каждой странице разбиения на страницы.

Другие вопросы по теме