Проблема с поиск и разбиение на страницы в Laravel?


код ниже возвращает все записи из базы, а также поиск термин, введенный в input системах с подкачкой.

проблема В том, что при нажатии, например, на странице 2 он уже обновляет страницу возвращаются все записи. Как остаться только в результате поиска и просмотреть все результаты только тогда, когда он даст submit в input поиска белый?

public function index(Request $request)
{
    $search = $request->search;
    $query = School::orderBy('social_name', 'ASC');
    if(!empty($search)) {
        $query = School::where('social_name', 'LIKE', '%'.$search.'%');
    }
    $schools = $query->paginate(5);
    return view('/dashboard/school/index', compact('schools'))
         ->with(['active' => 'escola']);
}

, View:

@section('content') 
<div class="row">
<div class="col-lg-12">
    <div class="card-box">

        <div class="row">
            <div class="col-md-9">
                <form method="GET" action="{{ url('/dashboard/school/create') }}">
                    <button type="submit" class="btn btn-primary w-md waves-effect m-t-5">Incluir</button>
                </form>
            </div>
            <div id="input-busca" class="col-md-3">
                <form method="GET" action="{{ url('/dashboard/school/index') }}">
                    <div class="input-group m-t-4">          
                        <input type="text" id="example-input2-group2" name="search" class="form-control" placeholder="Buscar">
                        <span class="input-group-btn">
                            <button type="submit" class="btn waves-effect waves-light btn-primary"><i class="fa fa-search"></i></button>
                        </span>  
                    </div>
                </form>
            </div>
        </div>

    </div>
    <div class="card-box">

        <div class="table-responsive">
            <table class="table m-0 table-hover">
                <thead>
                    <tr>
                        <th>Nome da Escola</th>
                        <th>Detalhes</th>
                        <th>Alterar</th>
                        <th>Excluir</th>
                    </tr>
                </thead>
                <tbody>
                    @foreach($schools as $school)
                    <tr>
                        <td>{{ $school->social_name }}</td>
                        <td>
                            <a href="#"><i class="fa fa-file-text-o fa-1_5x"></i></a>
                        </td>
                        <td>
                            <a href="#"><i class="fa fa-pencil-square-o fa-1_5x"></i></a>
                        </td>
                        <td>
                            <a href="#"><i class="fa  fa-trash-o fa-1_5x"></i></a>
                        </td>
                    </tr>
                    @endforeach
                </tbody>
            </table>

            {{ $schools->links() }}

        </div>
    </div>
</div><!-- end col -->

</div>
<!-- end row -->
@endsection
Author: novic, 2017-05-25

1 answers

В метод index, нужно пройти, чтобы view переменная $search, то, пожалуйста, следующие изменения:

public function index(Request $request)
{
    $search = $request->search;
    $query = School::orderBy('social_name', 'ASC');
    if(!empty($search)) {
        $query = School::where('social_name', 'LIKE', '%'.$search.'%');
    }
    $schools = $query->paginate(5);
    return view('/dashboard/school/index')
             ->with('schools', $schools)
             ->with('search', $search)
             ->with('active','escola');
}

И View стрейч {{ $schools->links() }} измените так, чтобы включать в себя исследования в вашем url с помощью метода appends:

{{ $schools->appends(['search' => isset($search) ? $search : ''])->links() }}

, эти изменения все исследования, в результате подкачки будет иметь links ultima проведенного исследования.

Ссылается на:

 2
Author: novic, 2017-05-28 23:32:05