Как получить текущую позицию записи CakePHP - для отображения на экране (запись ?? из ??) - PullRequest
0 голосов
/ 21 сентября 2011

Я пытаюсь найти позицию / индекс текущей записи в группе записей для отображения в представлении. Так, например, у меня может быть 10 записей в базе данных, и пользователь может просматривать запись № 5 из 10. Поэтому я хочу иметь возможность отображать эту информацию в view.ctp: Вы просматриваете запись # 5 из 10 записей.

Я уже знаю, как получить количество записей следующим образом:

$total_record_count = $this->TblAsset->find('count');

Мне не нужно знать $ id записи, у меня уже есть это значение, переданное через URL в качестве значения первичного ключа для записи.

Ответы [ 3 ]

1 голос
/ 21 сентября 2011

Если вы извлекаете записи по одной, стандартного определения того, каким «номером» является запись, не существует.Если у вас есть все записи в массиве, вы можете использовать индекс текущей записи.В противном случае вы должны посчитать порядковый номер любым способом, который вы используете для упорядочения записей.Например, вы можете посчитать количество записей, которые ранее создали дату, чем текущая запись, и добавить 1 к результату.

0 голосов
/ 18 июня 2013

Я обнаружил, что самым простым решением для этого является добавление индекса, который вы увеличиваете, и добавление текущей страницы -1 * количество результатов / страница

Пример: у меня есть запрос с пределом 10 Iможно жестко закодировать его или добавить другую переменную

$paginatorParams = $this->Paginator->params(); // which returns an array with 'limit' as  an index

, поэтому у меня будет:

$index = 0;
$paginatorParams = $this->Paginator->params();
foreach($records as $record):
   $index++;
   echo $index + ( ((int)$this->Paginator->counter('{:page}') - 1) * $paginatorParams['limit'] );
endforeach;

Так что на странице 1 у вас будет результат 1 + ((страница 1 - 1) * 10)= 1И на странице 2, и так далее, вы получите результат 1 + ((страница 2 - 1) * 10) = 11

Также, на мой взгляд, у него должна быть функция, которая возвращает номер записи, чтобы вы моглиотредактируйте Paginator Helper или используйте мой пример на ваш взгляд.

0 голосов
/ 21 сентября 2011

Используете ли вы встроенную CakePHP нумерацию страниц ?Звучит так, как должно быть, у него также есть удобный помощник для простого отображения «показа X записей из Y».

Он выполняет все необходимые для вас запросы, поэтому вы выиграли »Не нужно делать какие-либо ручные подсчеты запросов самостоятельно.Я рекомендую вам взглянуть на это.

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