【问题标题】:How to work with pagination in Laravel Algolia search如何在 Laravel Algolia 搜索中使用分页
【发布时间】:2018-12-20 17:19:08
【问题描述】:

分页不起作用。单击第 2 页时显示空白页。它没有从搜索查询中获取第二页。而且令牌也没有显示 第二页网址。这就是为什么将 csrf_token 添加到分页的原因
路线。

我正在使用 algolia 搜索

    Route::get('posts/search','PostController@search')->name('posts.search');

控制器

    public function search(Request $request){

    if($request->has('q')) {
         $request->flashOnly('q');
         $results = Post::search($request->q)->paginate(5);
    } else {
        $results = [];
    }
    return view('posts.search')->with('results', $results);
}

查看

@extends('layouts.app')

@section('content')
<div class="container">
<h1>Search for Posts</h1>
<form action="{{ route('posts.search') }}" method="get">
  {{ csrf_field() }}

  <div class="input-group">
    <input type="text" name="q" class="form-control input-lg" placeholder="Search for a post..." value="{{ old('q') }}"/>
    <span class="input-group-btn">
      <button class="btn btn-default btn-lg" type="submit">Search</button>
    </span>
  </div>
</form>
<hr />

@foreach ($results as $post)
  <div class="row" style="margin-top: 20px;">
    <div class="col-md-8">
      <a href="{{ route('posts.show', $post->id) }}"><h3>{{ $post->title }}</h3></a>
    </div>
    <div class="col-md-4">
      @if ($post->published)
        <h4><span class="label label-success pull-right">PUBLISHED</span><h4>
      @else
        <h4><span class="label label-default pull-right">DRAFT</span><h4>
      @endif
    </div>
  </div>
  <div class="row">
    <div class="col-md-12">
      <p>
        {{ str_limit($post->content, 250) }}
      </p>
    </div>
  </div>
@endforeach

@if (count($results) > 0)
  <hr />

  <div class="text-center">
    {{ $results->links() }}
  </div>
@endif

@endsection

【问题讨论】:

  • Post::search($request-&gt;q)-&gt;paginate(5); laravel 是否提供搜索功能?
  • 我不明白你在问什么
  • 你用过Post::search(),是laravel eloquont提供search功能吗?
  • 我不认为这是雄辩的搜索
  • 是一个laravel/scout搜索功能的Algolia驱动

标签: laravel algolia


【解决方案1】:

试试这个可能会有帮助

 // Making sure the user entered a keyword.
       if($request->has('q')) {
                // Using the Laravel Scout syntax to search the posts table.
                $results = Post::search($request->get('q'))->paginate(15);
            }

更新我的答案有时会有所帮助

 return view('posts.search',['results' => $results]);

【讨论】:

    【解决方案2】:

    试试:

    {{$results->appends(request()->query())->links()}}
    

    插入

    {{ $results->links() }}
    

    【讨论】:

      猜你喜欢
      • 2018-09-25
      • 1970-01-01
      • 2019-05-06
      • 2022-01-02
      • 1970-01-01
      • 2016-06-24
      • 1970-01-01
      • 2017-04-30
      • 2021-04-23
      相关资源
      最近更新 更多