Laravel поиск по страницам с красивым URL - PullRequest
1 голос
/ 11 января 2020

Я использую Laravel 6.x для разработки своих приложений. Я использую следующую версию:

PHP framework Laravel 6.x
Database MySQL

Я хотел бы спросить о pagination and searching at the same time с маршрутизатором GET В моих приложениях происходит следующее:

myapps.com/events?page=2
myapps.com/events?q=textsearch&page=2

То, что я ожидаю, на самом деле выглядит как это:

myapps.com/events/2
myapps.com/events/textsearch/2

Как я могу установить URL как в последнем случае?

Мой контроллер выглядит так:

$search = Article::when($request->q, function ($query) use ($request) {
             $query->where('title', 'LIKE', "%{$request->q}%")
                   ->orWhere('content', 'LIKE', "%{$request->q}%");
             })->paginate(8);
   $search->appends($request->only('q'));

И пример моего маршрутизатора:

Route::get('/events', 'AppController@search');

В рабочем режиме мое приложение работает, все в порядке, но мне нужен URL-запрос, чтобы он выглядел как второй случай, который я описал выше.

Какую библиотеку мне использовать или какие логи c я мог бы применить?

Редактировать:

Как это можно читать так:

| 1 | 2 | 3 | 4 |
|___________|
| 1 | 2 | 3      |
|------------------|
|Domain | route | searching | page number|
|Domain | route | page number |
|_______________________________

Работает так:

, если сегмент (3) = номер страницы, возвращает нумерацию страниц.

, если сегмент (3) = текст поиска, возвращает поиск и нумерация страниц

И как, если на нумерации страниц, сегмент (3) или (4) только цифра c, то, если поиск с номером, то как не назвать первую логику.

1 Ответ

0 голосов
/ 11 января 2020

Для доступа к queryParams вы можете использовать $request->query('q') Или также $request->input('q')

https://github.com/laravel/framework/blob/2906b572aa83ff46b8ad57093dd0e859c0ff783f/src/Illuminate/Http/Request.php#L396 [query] [1]

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