Laravel: результаты поиска разбиты на страницы, следующая страница не отображает результаты следующей страницы для искомого ключевого слова - PullRequest
2 голосов
/ 16 мая 2019

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

    Route::get('{store}/products', [
        'as'    => 'store.products.show',
        'uses'  => 'ProductsController@index',
    ]);
    public function index(Request $request, $store)
    {
        $store      = Store::where('slug', $store)->firstOrFail();
        $products   = Product::where('store_id', $store->uuid)
                        ->orderBy('display_order', 'ASC')
                        ->orderBy('name')
                        ->paginate();
        $search = null;

        return view('platform-management.products.index', compact(
            'store',
            'products',
            'search'
        ));
    }

Когда я нажимаю следующую страницу в нумерации страниц,URL-адрес изменится на http://127.0.0.1:8000/platform-management/store1/products?page=2 и правильно отобразит следующую страницу.enter image description here Моя проблема сейчас в том, что я использовал ту же логику для моей search_result функции:

    public function search_results(Request $request, $store)
    {
        $store      = Store::where('slug', $store)->firstOrFail();
        $substr     = $request->search;

        $products = Product::where('name', 'LIKE', "%{$substr}%");


        $products   = $products->where('store_id', $store->uuid)
                        ->orderBy('name')
                        ->paginate();

        return view('platform-management.products.search', compact(
            'store',
            'substr',
            'products'
        ));
    }

, которая использует маршрут:

    Route::get('{store}/products/search', [
        'as'    => 'products.search',
        'uses'  => 'ProductsController@search_results',
    ]);

Это делает работу, и это работает.когда я пытаюсь найти слово, например: enter image description here

Он выполняет поиск товаров со словом "marikit" в нем.пожалуйста, посмотрите на URL,

и теперь, если я нажму на следующую страницу результатов поиска,

enter image description here

словоЯ ищу "marikit" не входит в URL больше.и результаты поиска совпадают с отображением второй страницы продукта.Я попытался изменить URL-адрес на http://127.0.0.1:8000/platform-management/store1/products/search?search=marikit?page=2, но он просто добавлялся к искомому слову.

enter image description here

что я пропустил?Спасибо за время!

1 Ответ

1 голос
/ 16 мая 2019

Параметры запроса начинаются с ? и разделяются &.Так что ваш URL должен быть.

http://127.0.0.1:8000/platform-management/store1/products/search?search=marikit&page=2
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...