Пагинация на 2 отдельные таблицы

Контроллер

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 в результатах таблицы клиентов, она также разбивает результаты таблицы Bankings на страницы. Как я могу сделать так, чтобы за раз разбивалась только одна таблица, а не обе? Пожалуйста помоги

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
48
1

Ответы 1

Вы можете добавлять «имена» к тем, что вы разбиваете на страницы:

В URL-адресе теперь будет ?clients=1&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 12.03.2018 07:55

@Vester, можно мне поставить +1 и проверить правильный ответ :)

H H 12.03.2018 10:24

Другие вопросы по теме