Разбивка на страницы Laravel не работает с более чем одним предложением where

Я хочу разбить результат этого запроса на страницы. Разбивка на страницы работает нормально, когда я вызываю where() только один раз, но, как и в приведенном ниже коде, происходит сбой, когда есть несколько вызовов метода ->where(). Если я уберу эту часть из контроллера, то разбиение на страницы ->where('prodtype', '=', $div) будет работать. Я не могу понять, почему это не удается.

Контроллер

public function extendedSearch(Request $request)
{
    $method = $request->method();
    if ($request->isMethod('get') and $request->description !== '' and $request->division !== '') {
        $desc = $request->description;
        $div = $request->division;

        $products = Product::where('description', 'like', '%'.$desc.'%')
            ->where('prodtype', '=', $div)
            ->paginate(10);

        return view('result', compact('products'));
    }

    return redirect()->back();
}

Просмотреть

<section>
    @foreach($products as $product)
        <div class="accordion" id="accordionExample">
            <div class="card">
                <div class="card-header" id="headingOne">
                    <h2 class="mb-0">
                        <button class="btn btn-click" type="button" data-toggle="collapse"
                                data-target="#<?php echo "collapse".$product->prodnumber; ?>" aria-expanded="true"
                                aria-controls="<?php echo "collapse".$product->prodnumber; ?>">
                            {{$product->prodnumber}} {{$product->description}}
                            <span class="fas fa-angle-down"> </span>
                        </button>

                        <form method="get" action="{{action('DownloadController@redirect')}}">
                            <input name="productNumber" value="{{$product->prodnumber}}" type="hidden">
                            <button class="fas fa-file-pdf" type="submit" style="float: right;">
                            </button>
                        </form>
                    </h2>
                </div>

                <div id="<?php echo "collapse".$product->prodnumber; ?>" class="collapse show"
                     aria-labelledby="headingOne" data-parent="#accordionExample">
                    <div class="card-body">
                        <div class="list-container">
                            <div class="list-group">
                                <div class="list-group-item"> Prod No.: {{$product->blablabla}}</div>
                            </div>
                        </div>
                    </div>
                </div>
            </div>
            @endforeach

            <ul class="pagination justify-content-center" name="pagination">
                {{ $products->links('pagination::bootstrap-4') }}
            </ul>
        </div>
</section>

person setup    schedule 07.11.2019    source источник
comment
что не получается, что работает.. ошибка, что?   -  person lagbox    schedule 08.11.2019
comment
Каково желаемое значение и что возвращается и сохраняется в $products? Возникает ошибка?   -  person Augusto Moura    schedule 08.11.2019


Ответы (1)


Таких двух не может быть.
Так что измените код таким образом.

public function extendedSearch(Request $request)
{
    $method = $request->method();
    if ($request->isMethod('get') and $request->description !== '' and $request->division !== '') {
        $desc = $request->description;
        $div = $request->division;

        $products = Product::where([['description', 'like', '%'.$desc.'%'],['prodtype', '=', $div]])
            ->paginate(10);

        return view('result', compact('products'));
    }

    return redirect()->back();
}
person Khalid Khan    schedule 11.11.2019