【问题标题】:Search result pagination laravel搜索结果分页 laravel
【发布时间】:2017-02-24 03:45:23
【问题描述】:

我的分页在第一页上正常工作。它正确显示 2 个名称。当我想在下一页查看其他结果时,我当前的代码不会显示任何内容。当我制作一个静态数组时:

 $searchResults = [
            'item1',
            'item2',
            'item3',
            'item4',
            'item5',
            ];

它将在不同的页面上正确显示数组。 当我从我的 sql 查询中创建一个数组时,它在下一页上什么也不显示。 我使用了 var_dump,在第二页上,我没有看到我创建的数组的任何内容。

这是我的控制器代码:

public function zoekdocument(Request $request) //voor het zoeken van software
{

$zoekdocument = \Request::get('zoekdocument');

$searchResult = array();

$searchdoc = \DB::table('visits')->where('title', 'LIKE', '%' . $zoekdocument . '%')->paginate();

foreach($searchdoc as $searchdocument){ 

    $filedir = $searchdocument->pagename; //wordt gedurende loop tot die finisht in de array gezet.

    $searchResult[] = $filedir; //dat wordt hier gedaan.
}

    $currentPage = LengthAwarePaginator::resolveCurrentPage();

    $page = $request->has('page') ? $request->get('page') : 1;

    //Create a new Laravel collection from the array data
    $collection = new Collection($searchResult);

    $perPage = 2;

   $currentPageSearchResults = $collection-> slice (($currentPage -1) * $perPage, $perPage)->all();
    //Create our paginator and pass it to the view
    $paginatedSearchResults= new 

LengthAwarePaginator($currentPageSearchResults, count($collection), $perPage, $page, ['path'  => $request->url(),'query' => $request->query(),

return view('Documentatie.result', ['results' => $paginatedSearchResults])->with('zoekdocument', $zoekdocument);

这是我的视图代码:

@section('content')

<!-- Striped rows -->
<div class="panel panel-flat">
  <div class="panel-heading">
    <h5 class="panel-title text-center">Documentatie overzicht resultaat</h5>
    <div class="heading-elements">
    </div>
  </div>

  <div class="text-center">
    <h2>Zoekresultaat van: <b><i>{{$zoekdocument}}</b></i></h5>
    </div>  

 @foreach ($results as $result)
        <p>{{ $result }}</p>
    @endforeach

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




@endsection

【问题讨论】:

    标签: php arrays laravel search pagination


    【解决方案1】:

    我更改了我的代码,将 get() 改为 paginate(),它现在可以工作了。

    【讨论】:

      【解决方案2】:

      我认为下面的代码应该通过按照 laravel 文档显示分页链接来修复错误:

      {{ $users->links() }}
      

      代替

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

      这里是文档链接:https://laravel.com/docs/5.3/pagination 让我知道这是否有效,如果无效,我将尝试帮助找到解决方案。

      【讨论】:

      • 它不起作用。很奇怪,当我对静态数组做同样的事情时,它可以工作。我认为我的 sql 查询出错了。我的查询检查与搜索词一致的内容并制作一个数组。例如:keyword = "te" 并且查询在数据库中搜索带有 "te" 的名称。之后,它将通过循环将其放入数组中。当我点击下一页时,数组是空的。
      猜你喜欢
      • 2017-01-12
      • 1970-01-01
      • 2021-03-24
      • 2018-01-17
      • 1970-01-01
      • 2012-07-31
      • 2018-11-19
      • 2019-10-03
      相关资源
      最近更新 更多