Настраиваемая пагинация "ломается" при добавлении (рабочей) панели поиска - PullRequest
0 голосов
/ 06 мая 2020

Я работаю над проектом, и в настоящее время мне удалось создать настраиваемый пагинатор, который позволяет пользователю определять количество записей, отображаемых на каждой странице.

Это работает нормально, пока я не добавить в мою панель поиска. Когда я пытаюсь установить число, ничего не происходит. Я видел, что поле разбивки на страницы ссылается на неправильный URL-адрес, поэтому я вполне уверен, что существует какой-то конфликт, потому что у меня есть более одного поля формы одного типа на одной странице (на данный момент оба GET).

Мне было интересно, поможет ли сделать один POST.

КОД:

importeren.blade. php

@extends('layouts.app')
@section('content')

<div class="container-fluid">
  <div class="flash-message">
    @foreach (['danger', 'warning', 'success', 'info'] as $msg)
      @if(Session::has('alert-' . $msg))
        <p class="alert alert-{{ $msg }}">{{ Session::get('alert-' . $msg) }} <a href="javascript:void(0)" class="close" data-dismiss="alert" aria-label="close">&times;</a></p>
      @endif
    @endforeach
  </div>
    <form action="{{ url('import') }}" method="POST" enctype="multipart/form-data">
    @csrf
    <input type="file" name="file">
    <br>
    <input type="submit" value="Import" class="btn btn-primary">
    </form>
</div>
<div class="container-fluid">
    <div class="row">
        <div class="col-md-6">
          {{-- <div class="form-group">
            <form action="{{ route('search') }}" method="POST" class="search-form">
            <label for="search">Zoeken:</label>
            <input type="text" name="query" value="{{ request()->input('query') }}" class="form-control" placeholder="Zoek klant op klantnummer, naam e.d.">
          </div> --}}
            <h4>Gegevens</h4>
            <table class="table table-bordered">
                <thead>
                  <tr>
                    <div class="data_headings">
                      <th scope="col">#</th>
                      <th scope="col">Cliënt<br>nummer</th>
                      <th scope="col">Zoek<br>term</th>
                      <th scope="col">Naam</th>
                      <th scope="col">Omschrijving</th>
                      <th scope="col">Plaats</th>
                      <th scope="col">Week</th>
                      <th scope="col">Vennoot</th>
                      <th scope="col">Relatie<br>beheerder</th>
                      <th scope="col">Samen<br>steller</th>
                      <th scope="col">ADVer</th>
                      <th scope="col">Cliënt<br>groepcode</th>
                      <th scope="col">Accountant</th>
                      <th scope="col">Samen<br>stellen</th>
                      <th scope="col">ADV Jaarwerk</th>
                      <th scope="col">Periodieke ADV</th>
                      <th scope="col">Fiscaliteiten</th>
                    </div>
                  </tr>
                </thead>
                <tbody>
                    @foreach ($datas as $data)
                  <tr>
                    <div class="table_data">
                      <th scope="row">{{$data->id}}</th>
                        <td>{{$data->cliëntnummer}}</td>
                        <td>{{$data->zoeknaam}}</td>
                        <td>{{$data->naam}}</td>
                        <td>{{$data->omschrijving}}</td>
                        <td>{{$data->plaats}}</td>
                        <td>{{$data->week}}</td>
                        <td>{{$data->vennoot}}</td>
                        <td>{{$data->relatiebeheerder}}</td>
                        <td>{{$data->samensteller}}</td>
                        <td>{{$data->ADVer}}</td>
                        <td>{{$data->cliëntgroepcode}}</td>
                        <td>{{$data->accountant}}</td>
                        <td>{{$data->samenstellen}}</td>
                        <td>{{$data->ADVJaarwerk}}</td>
                        <td>{{$data->PeriodiekeADV}}</td>
                        <td>{{$data->fiscaliteiten}}</td>
                      </th>
                    <div>
                  </tr>
                    @endforeach
                </tbody>
            </table>
            <div class="form-group">
              <form method="GET" action="{{URL::to('/importeer')}}" enctype="multipart/form-data">
              <label for="paginate">Aantal resultaten per pagina:</label>
              <input type="number" name="paginate_number">
              <button class="btn btn-primary" type="submit">Invoeren</button>
              </form>
              <a class="btn btn-primary" href="javascript:window.print()">Print</a>
            </div>
            {{$datas->appends(['paginate_number' => request('paginate_number')])->links()}}
        </div>
    </div>
</div>

search-results.blade . php

@extends('layouts.app')
@section('content')
<div class="container-fluid">
  <div class="row">
    <div class="col-md-4">
      <div class="form-group">
        <form action="{{ route('search') }}" method="GET" class="search-form">
          <input type="text" name="query" value="{{ request()->input('query') }}" class="form-control" placeholder="Zoek klant op klantnummer, naam e.d.">
        </form>
      </div>
    </div>
  </div>
</div>

<div class="search-results-container">
    <h3>Zoekresultaten</h3>
    <p>{{ $records->count() }} resultaten voor '{{request()->input('query')}}'</p>

    <table class="table table-bordered">
      <thead>
        <tr>
          <div class="data_headings">
            <th scope="col">#</th>
            <th scope="col">Cliënt<br>nummer</th>
            <th scope="col">Zoek<br>term</th>
            <th scope="col">Naam</th>
            <th scope="col">Omschrijving</th>
            <th scope="col">Plaats</th>
            <th scope="col">Week</th>
            <th scope="col">Vennoot</th>
            <th scope="col">Relatie<br>beheerder</th>
            <th scope="col">Samen<br>steller</th>
            <th scope="col">ADVer</th>
            <th scope="col">Cliënt<br>groepcode</th>
            <th scope="col">Accountant</th>
            <th scope="col">Samen<br>stellen</th>
            <th scope="col">ADV Jaarwerk</th>
            <th scope="col">Periodieke ADV</th>
            <th scope="col">Fiscaliteiten</th>
          </div>
        </tr>
      </thead>
      <tbody>
          @foreach ($records as $record)
        <tr>
          <div class="table_data">
            <th scope="row">{{$record->id}}</th>
              <td>{{$record->cliëntnummer}}</td>
              <td>{{$record->zoeknaam}}</td>
              <td>{{$record->naam}}</td>
              <td>{{$record->omschrijving}}</td>
              <td>{{$record->plaats}}</td>
              <td>{{$record->week}}</td>
              <td>{{$record->vennoot}}</td>
              <td>{{$record->relatiebeheerder}}</td>
              <td>{{$record->samensteller}}</td>
              <td>{{$record->ADVer}}</td>
              <td>{{$record->cliëntgroepcode}}</td>
              <td>{{$record->accountant}}</td>
              <td>{{$record->samenstellen}}</td>
              <td>{{$record->ADVJaarwerk}}</td>
              <td>{{$record->PeriodiekeADV}}</td>
              <td>{{$record->fiscaliteiten}}</td>
            </th>
          <div>
        </tr>
          @endforeach
      </tbody>
  </table>
</div>

Datacontroller@search (отвечает за поиск записей)

    public function search(Request $request){
        $request->validate([
            'query' => 'required|min:2',
        ]);

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

        $records = Data::where('cliëntnummer', 'like', "%$query%")
                         ->orWhere('zoeknaam', 'like', "%$query")
                         ->orwhere('omschrijving', 'like', "%$query%")
                         ->get();

        return view('search-results')->with('records', $records);
    }
}

И, наконец, два маршрута, которые я использую для работы обеих функций:

Route::get('/search', 'Datacontroller@search')->name('search');

Route::get('importeer', 'Datacontroller@index');

Если кто-нибудь знает причину, пожалуйста, расскажите.

(О, он также сообщает мне «добавления», которые я удалил на данный момент из-за отсутствия целей тестирования, я прочтите, что это связано с ошибками рендеринга пустых полей или чем-то в этом роде).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...