【问题标题】:pagination array laravel redirecting分页数组 laravel 重定向
【发布时间】: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"> &#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;


?>

【问题讨论】:

    标签: php arrays laravel redirect pagination


    【解决方案1】:

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

    为一个雄辩的模型分页

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

    在视图中

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

    Doc

    希望这能解决您的问题

    【讨论】:

    • 我无法渲染,因为它是一个数组
    • 我对数据库什么都不做,
    • @JurHillebrink 如果你想要收藏,你可以:$users = User::where('votes', '&gt;',100)-&gt;paginate(15)-&gt;items()
    猜你喜欢
    • 2014-02-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-20
    • 2020-09-01
    • 2021-03-20
    相关资源
    最近更新 更多