我试图在一组记录中找到当前记录的位置/索引,以便在视图中显示。 因此,例如,我可能在数据库中有10条记录,并且用户可能正在查看记录#5中的10条。所以我希望能够在view.ctp上显示此信息: 您正在查看总共10条记录中的第5条记录。
我已经知道如何获取记录数量如下:
$total_record_count = $this->TblAsset->find('count');
我不需要知道记录的$ id,我已经通过URL传递了该值作为记录的主键值。
答案 0 :(得分:1)
如果您逐个获取记录,则记录的“数字”没有标准定义。如果您拥有数组中的所有记录,则可以使用当前记录的索引。否则,您必须通过用于订购记录的任何方法来计算序数。例如,您可以计算先前创建的日期比当前记录的记录数,并将1添加到结果中。
答案 1 :(得分:0)
您使用内置的CakePHP pagination吗?它听起来应该是,它还有一个convenient helper,可以轻松显示“从Y中显示X记录”。
它会为您完成所有必要的查询,因此您不需要自己进行任何手动计数查询。我建议你调查一下。
答案 2 :(得分:0)
我发现最简单的解决方案是添加一个你递增的索引并添加当前页面-1 *结果数/页
实施例: 我有一个限制为10的查询我可以对其进行硬编码或添加另一个变量
$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,或者在你的视图中使用我的例子。