pagination array laravel重定向

时间:2016-10-13 20:02:11

标签: php arrays laravel redirect pagination

我正在使用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"> &#171; 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 &#187; </a>', $page + 1 ); 
  }           
}                   
$pagerContainer .= '</div>';

echo $pagerContainer;


?>

1 个答案:

答案 0 :(得分:1)

什么不符合分页的标准功能?

煽动一个雄辩的模型

$someUsers = User::where('votes', '>', 100)->paginate(15);

在视图中

<?php echo $users->render(); ?>

Doc

希望这可以解决您的问题