首页 > 解决方案 > 如何在 Laravel Blade 中对 json 响应进行分页

问题描述

JSON响应

我有一个可以通过搜索关键字获得的 API。

我想用 Laravel Blade 和分页来使用它。所以,我做了一个 ViewHadController:

    public function cari(Request $request)
    {
        $cari = $request->cari;
        $response = Http::get("http://hadits.test/api/hadall/cari?isi=$cari");
        $data = $response->json();
        //dd($data);
        return view('hadits', compact('data'));
    }

这是我的 view.blade.php:

 <body>
    <div class="container">

            <nav class="navbar navbar-light sticky-top" style="background-color: #e3f2fd;">
            <div class="container-fluid">
                <form class="d-flex" action="/cari" method="GET">
                @csrf
                <input class="form-control me-2" type="search" placeholder="Cari Hadits..." name="cari" value="{{ old('cari') }}">
                <button class="btn btn-outline-success" type="submit">Search</button>
                </form>
            </div>
            </nav>

  </div>
    
    <div class="container">
    <table class="table table-hover">
  <thead>
    <tr>
      <th scope="col">#</th>
      <th scope="col">No Hadits</th>
      <th scope="col">Kitab</th>
      <th scope="col">Hadits</th>
    </tr>
  </thead>
  <tbody>
    @php
        $no=0;
    @endphp
    @if(isset($data))
        @foreach ($data['data'] as $had)
            @php
                $no++;
            @endphp
            <tr>
            <th scope="row">{{  $no }}</td>
            <td>{{ $had['NoHdt'] }}</td>
            <td>{{ $had['Kitab'] }}</td>
            <td>{{ $had['Isi_Arab'] }} <br>
            {{ $had['Isi_Indonesia'] }}   </td>
            </tr>
       @endforeach
    @endif
  </tbody>  
    {{ $data['data']->links }}
</table>
    </div>
    

</body>

有了这个 web.routes: Route::get('/{cari}', 'ViewHadController@cari');

在 Laravel Docs Pagination 中,总是给我:{{ $data['data']->links }} 但那是非对象:Trying to get property 'links' of non-object

我该如何解决这个问题?

标签: jsonpaginationlaravel-blade

解决方案


迄今为止的最佳答案:我不能!Laravel 分页是为了雄辩。

如何使用 Guzzle 进行分页


推荐阅读