Я работаю над проектом, и в настоящее время мне удалось создать настраиваемый пагинатор, который позволяет пользователю определять количество записей, отображаемых на каждой странице.
Это работает нормально, пока я не добавить в мою панель поиска. Когда я пытаюсь установить число, ничего не происходит. Я видел, что поле разбивки на страницы ссылается на неправильный 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">×</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');
Если кто-нибудь знает причину, пожалуйста, расскажите.
(О, он также сообщает мне «добавления», которые я удалил на данный момент из-за отсутствия целей тестирования, я прочтите, что это связано с ошибками рендеринга пустых полей или чем-то в этом роде).