我正在使用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;
?>
答案 0 :(得分:1)
什么不符合分页的标准功能?
煽动一个雄辩的模型
$someUsers = User::where('votes', '>', 100)->paginate(15);
在视图中
<?php echo $users->render(); ?>
希望这可以解决您的问题