【发布时间】:2016-10-14 04:16:08
【问题描述】:
我正在使用 laravel,现在我正在为我的数组进行分页。
当我想对数组中的三个项目进行分页时,它会正确输出。我想在下一页看到我的另外四个项目,我重定向到同一页面并查看数组中的前三个项目,但看不到另外四个。
我的页面如何工作:首先在另一个视图中,我搜索一个项目并向我的结果控制器发出 GET 请求,我的结果控制器在数据库中检查文件并将其放入一个数组中。然后,结果控制器返回结果页面。用我的分页代码。
这是我的返回查看代码:
return view('Documentatie.result')->with('zoekdocument', $zoekdocument)->with('searchdoc', $searchdoc)->with('fileopslag', $fileopslag); //geeft waardes mee.
变量文件 $fileopslag 是我的项目数组。
这是我的分页代码:
$page = ! empty( $_GET['page'] ) ? (int) $_GET['page'] : 1;
$total = count( $fileopslag ); //total items in array
$limit = 3; //per page
$totalPages = ceil( $total/ $limit ); //calculate total pages
$page = max($page, 1); //get 1 page when $_GET['page'] <= 0
$page = min($page, $totalPages); //get last page when $_GET['page'] > $totalPages
$offset = ($page - 1) * $limit;
if( $offset < 0 ) $offset = 0;
$show = array_slice( $fileopslag, $offset, $limit );
然后我展示我的结果:
foreach($show as $shows){
<a href="/opendocument/{{basename($shows)}}" class="list-group-item"></a>
}
我正确地看到了三个结果。但是当我想查看其他页面时,可以查看我数组中的所有文件,而不是我的另外四个文件。
这是我的重定向代码:
<?php
$link = '/result/page=%d';
$pagerContainer = '<div style="width: 300px;">';
if( $totalPages != 0 )
{
if( $page == 1 )
{
$pagerContainer .= '';
}
else
{
$pagerContainer .= sprintf( '<a href="' . $link . '" style="color: #c00"> « prev page</a>', $page - 1 );
}
$pagerContainer .= ' <span> page <strong>' . $page . '</strong> from ' . $totalPages . '</span>';
if( $page == $totalPages )
{
$pagerContainer .= '';
}
else
{
$pagerContainer .= sprintf( '<a href="' . $link . '" style="color: #c00"> next page » </a>', $page + 1 );
}
}
$pagerContainer .= '</div>';
echo $pagerContainer;
?>
【问题讨论】:
标签: php arrays laravel redirect pagination