Многократный фильтр флажка, используя форму с нумерацией страниц в laravel - PullRequest
0 голосов
/ 28 февраля 2019

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

Вид: -

<form action="{{ route('trainer.filter') }}" method="post">
        @csrf
          <!-- Name -->
          <input type="text" class="form-control mb-4" placeholder="Search" name="keywords" aria-label="Search">
          <h6 class="black-text mt-2 "><b class="category">Areas of Experties</b></h6>
          <!-- Copy -->
          @foreach ($expertise_areas as $expertise_area)
            <div class="custom-control custom-checkbox mb-1" style="padding-left: 3px;">
              <label for="expertise_area">
                <input type="checkbox" name="expertise_area[]" value="{{ $expertise_area->id }}">&nbsp;&nbsp;{{ $expertise_area->name }}
              </label>
            </div>
          @endforeach

          <!-- State -->
          <h6 class="black-text mt-2 "><b class="category">Trainer Location (STATE)</b></h6>
          <select class="form-default browser-default custom-select mb-4" name="state" id="state">
             <option selected disabled>Choose State</option>
             @foreach ($states as $state)
             <option value="{{ $state->id }}">{{ $state->name }}</option>
             @endforeach
          </select>
          <h6 class="black-text mt-2 "><b class="category">Trainer Location (City)</b></h6>
          <!-- City -->
          <select class="browser-default custom-select mb-4" name="city" id="city">
             <option selected disabled>Choose City</option>
             @foreach ($cities as $city)
             <option value="{{ $city->id }}">{{ $city->name }}</option>
             @endforeach
          </select>
          <!-- Send button -->
          <button class="btn btn-info btn-block" type="submit">Search</button>
       </form>

Ссылка на нумерацию страниц: -

{{ $trainers->links() }}

Маршрут: -

Route::post('trainer/filter', 'HomeController@trainerFilter')->name('trainer.filter');

Контроллер: -

public function trainerFilter(Request $request)
{
    if ($request->has('keywords')) {
        $trainers = Trainer::where('name', 'LIKE', '%'.$request->keywords.'%')
                    ->orWhere('state_name', 'LIKE', '%'.$request->keywords.'%')
                    ->orWhere('city_name', 'LIKE', '%'.$request->keywords.'%')->orderBy('ranking', 'asc')->paginate(5);
    }}

1 Ответ

0 голосов
/ 28 февраля 2019

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

Глядя на код контроллера, который вы разместили, вы можете попытаться добавить параметр keywords к нумерации страниц , что-то вроде этого:

{{ $trainers->appends(['keywords' => $keywords])->links() }}

И помнитепередать ['keywords' => $request->keywords] на просмотр.

...