【问题标题】:Pagination on 2 separate tables在 2 个单独的表格上进行分页
【发布时间】:2018-03-09 13:51:45
【问题描述】:

控制器

public function getSearch(Request $request)
{

  $search = $request->input('search');


  $clients = Client::search($search)
                   ->paginate(5);


  $bankings = Banking::search($search)
                  ->paginate(5);

  return view('search/search',compact(['clients','bankings'])); 

}

查看

@extends('layouts.master')

@section('content')

    <div class="content">
      <div class="row search">
        <div class="col-xs-12">
          <div class="box" >
            <div class="box-body" >
               <table class="table table-bordered table-hover" id="clients">
                    <thead>
                           <th>Customer Code</th>
                           <th>Surname</th>
                           <th>Name</th>
                           <th>Company Name</th>
                           <th>ID Number</th>
                           <th>Email</th>
                           <th>Client Type</th>
                           <th>Created </th>
                    </thead>
                    @foreach($clients as $client)
                    <tr>
                        <td>{{$client->customercode}}</td>
                        <td>{{$client->name}}</td>
                        <td>{{$client->surname}}</td>
                        <td>{{$client->companyname}}</td>
                        <td>{{$client->idnumber}}</td>
                        <td>{{$client->email}}</td>
                        <td>{{$client->clienttype}}</td>
                        <td>{{$client->created_at}}</td>
                    </tr>  
                    @endforeach 
               </table>
               {{$clients->appends(Request::except('page'))->links()}}
            </div>
          </div>
         </div>
        </div>
       </div>


    <div class="content">
      <div class="row search">
        <div class="col-xs-12">
          <div class="box" >
            <div class="box-body" >
               <table class="table table-bordered table-hover" id="bankings">
                    <thead>
                           <th>Customer Code</th>
                           <th>Account Holder's Name</th>
                           <th>Bank</th>
                           <th>Account Type</th>
                           <th>Account Number</th>
                    </thead>
                    @foreach($bankings as $banking)
                    <tr>
                        <td>{{$banking->customercode}}</td>
                        <td>{{$banking->acc_holders_name}}</td>
                        <td>{{$banking->bank}}</td>
                        <td>{{$banking->acc_type}}</td>
                        <td>{{$banking->acc_no}}</td>
                    </tr>  
                    @endforeach 
               </table>
               {{$bankings->appends(Request::except('page2'))->links()}}
            </div>
          </div>
         </div>
        </div>
       </div>

@stop

所以我有一个搜索功能,它通过 2 个表,即客户和银行,根据用户输入进行搜索并返回与输入匹配的结果。所以我在两张桌子上都添加了简单的 laravel 分页。我的问题是当我单击客户表结果上的第 2 页时,它也会对银行表结果进行分页。我怎样才能让它一次只分页一个表而不是两个?请帮忙

【问题讨论】:

    标签: php laravel pagination


    【解决方案1】:

    您可以在分页的内容中添加“名称”:

    在 url 中,现在将是 ?clients=1&amp;bankings=3 等。

    public function getSearch(Request $request)
    {
    
        $search = $request->input('search');
    
        $clients = Client::search($search)
                          ->paginate(5, ['*'], 'clients');
    
        $bankings = Banking::search($search)
                            ->paginate(5, ['*'], 'bankings');
    
        return view('search/search',compact(['clients','bankings'])); 
    }
    

    https://laravel.com/api/5.5/Illuminate/Database/Eloquent/Builder.html#method_paginate

    【讨论】:

    • 非常感谢您。它可以 100% 工作,并且从用户的角度来看,url 逻辑定义也很有意义。谢谢。
    • @Vester 我可以得到一个 +1 和一个正确的答案请检查:)
    猜你喜欢
    • 2020-04-27
    • 2011-10-09
    • 1970-01-01
    • 2011-01-02
    • 1970-01-01
    • 2015-01-16
    • 1970-01-01
    • 2017-12-05
    • 1970-01-01
    相关资源
    最近更新 更多