Добавление разбивки на страницы не работает в laravel

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

Я пробовал это:

1- @include('front.partials.pagination', ['paginator' => $products])

2- {{$products->appends(Request::except(['page','_token']))->links() }}

3- {{$products->appends(request()->query())->links() }}

4- $products->appends(['brands' => $brandss]); //in contoller

У всех одинаковый результат 404 Error

Вот моя полная функция:

public function advancedsearch(Request $request) {
    // dd($request->all());
    $options = Specification::whereHas('subspecifications')->with(['subspecifications' => function($query){
        $query->status('Active');
    }])->get();

    $brandss = Input::has('brands') ? Input::get('brands') : [];
    $suboption = Input::has('suboptions') ? (int)Input::get('suboptions') : [];
    $min_price = Input::has('min_price') ? (int)Input::get('min_price') : null;
    $max_price = Input::has('max_price') ? (int)Input::get('max_price') : null;


    //codes
    if (!empty($request->input('brands')) && !empty($request->input('min_price')) && !empty($request->input('max_price'))){
      $products = Product::
      where('price', '>=', $min_price)
      ->where('price', '<=', $max_price)
      ->whereIn('brand_id', $brandss)
      ->paginate(12);
      $products->appends(['brands' => $brandss, 'suboptions' => $suboption, 'min_price' => $min_price, 'max_price' => $max_price]);
    }


    elseif (!empty($request->input('suboptions')) && !empty($request->input('min_price')) && !empty($request->input('max_price'))){
      $products = DB::table('products')
        ->join('product_subspecification', function ($join) {
          $suboption = Input::has('suboptions') ? Input::get('suboptions') : [];
              $join->on('products.id', '=', 'product_subspecification.product_id')
                   ->where('product_subspecification.subspecification_id', '=', $suboption);
          })
          ->where('products.price', '>=', $min_price)
          ->where('products.price', '<=', $max_price)
        ->paginate(12);
        $products->appends(['brands' => $brandss, 'suboptions' => $suboption, 'min_price' => $min_price, 'max_price' => $max_price]);
    }

    //
    elseif (!empty($request->input('brands')) && !empty($request->input('suboptions'))){
      $products = DB::table('products')
        ->whereIn('products.brand_id', $brandss)
        ->join('product_subspecification', function ($join) {
          $suboption = Input::has('suboptions') ? Input::get('suboptions') : [];
              $join->on('products.id', '=', 'product_subspecification.product_id')
                   ->where('product_subspecification.subspecification_id', '=', $suboption);
          })
        ->paginate(12);
        $products->appends(['brands' => $brandss, 'suboptions' => $suboption]);
    }

    elseif (!empty($request->input('brands')) && !empty($request->input('suboptions')) && !empty($request->input('min_price')) && !empty($request->input('max_price'))){
      $products = DB::table('products')
        ->join('product_subspecification', function ($join) {
          $suboption = Input::has('suboptions') ? Input::get('suboptions') : [];
              $join->on('products.id', '=', 'product_subspecification.product_id')
                   ->where('product_subspecification.subspecification_id', '=', $suboption);
          })
          ->where('products.price', '>=', $min_price)
          ->where('products.price', '<=', $max_price)
          ->whereIn('products.brand_id', $brandss)
        ->paginate(12);
        $products->appends(['brands' => $brandss, 'suboptions' => $suboption, 'min_price' => $min_price, 'max_price' => $max_price]);
    }
    //


    elseif (!empty($request->input('suboptions'))){
        $products = DB::table('products')
        ->join('product_subspecification', function ($join) {
          $suboption = Input::has('suboptions') ? Input::get('suboptions') : [];
              $join->on('products.id', '=', 'product_subspecification.product_id')
                   ->where('product_subspecification.subspecification_id', '=', $suboption);
          })
        ->paginate(12);
        $products->appends(['suboptions' => $suboptions]);
    }

    elseif (!empty($request->input('brands'))){
      $products = DB::table('products')
      ->whereIn('products.brand_id', $brandss)
      ->paginate(12);
      $products->appends(['brands' => $brandss]);
    }

    elseif ($request->has('min_price') && $request->has('max_price')){
      $products = DB::table('products')
      ->whereBetween('price', [$min_price, $max_price])
      ->paginate(12);
      $products->appends(['min_price' => $min_price, 'max_price' => $max_price]);
    }


    return view('front.advancesearch', compact('products', 'options'));
}

Любая идея?

.................................................. .................................................. .................................................. .................................................. ........

какую версию Laravel вы используете?

Emtiaz Zahid 28.11.2018 05:50

@EmtiazZahid 5.6

mafortis 28.11.2018 05:50

А как насчет URL-адресов ссылок на страницы? Вы это проверили?

sadaiMudiNaadhar 28.11.2018 06:04

@sadaiMudiNaadhar идет как site.com?brands[]=1&page=2

mafortis 28.11.2018 06:19

Возможный дубликат Добавьте данные в laravel paginate

Walter Cejas 28.11.2018 06:29

@WalterCejas whaaaaat ?! какие пользовательские данные нужно объединить? братан, пожалуйста, сначала посмотрите код. Я опубликовал свой контроллер. Вы видите какие-либо дополнительные данные, кроме $products = DB::....?

mafortis 28.11.2018 06:34

Что это за URL! Просто попробуйте URL работает вручную. (В любом случае)

sadaiMudiNaadhar 28.11.2018 06:56

@sadaiMudiNaadhar site.com/advanced-search?brands[0]=2&page=2, page=2 - это базовый URL-адрес для пагинации, а ?brands[0]=2 - это часть, которую я добавил в URL-адрес, который должен позволять пагинации работать без потери данных поиска.

mafortis 28.11.2018 08:46
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
8
192
1

Ответы 1

Вы используете Eloquent в первой части и построитель запросов во второй части, а appends - это красноречивый метод, коллекция, которую вы получаете от построителя запросов, не совпадает с коллекцией от Eloquent Eloquent ... у нее разные методы. ..

Итак, вы говорите, что если я изменю свою часть if для использования запроса в качестве остальной функции, она будет исправлена?

mafortis 28.11.2018 08:43

это тоже не помогло

mafortis 28.11.2018 09:02

Другие вопросы по теме