Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 10.11.2016 22:45:35

SerjKAZAN

Поиск имени в бд через форму -> после выдача в пагинацию

Доброго времени суток.
Либо googl-ил плохо, либо не спал уже долго.

//--------------------------------------------------Форма

<form action="/guests/search" method="post">
                            <input type="hidden" name="_token" value="{{ csrf_token() }}">
                            <input type="text" autocomplete="off" name="namesearch" >
</form>


//---------------------------------------------------Роуты

Route::post('/guests/search', 'ClientController@searchbyfrom');

// --------------------------------------------------Mетод

public function searchbyfrom(Request $request, Client $all_clients)
    {
       
        $clients_search = $all_clients->where('NAME', 'like', '%' . $request->namesearch. '%')->paginate(15);
        return view('client.guests', ['clients' => $clients_search]);
    }

////////////////вьюха///////////////////////

@foreach($clients as $client)
                    <!-- Element-->

<a href="/guest/{{ $client->ID }}"><img style="padding-top:40px;"  src="../{{ $client->image[0]->SUBDIR}}/{{$client->image[0]->FILE_NAME }}" width="100" alt=""></a>
                     
                  <!-- Element-->
@endforeach
                         
                            {{ $clients->render() }}

/////////////////////////////////////////////////////////////////////////////////////////


Так вот, при запросе выводятся только первые 15 элементов, если нажимаем на 2 страницу в пагинации, то пустота (ни ошибки, ни каких предупреждений)

Каким образом решить задачу не пойму... в документации про пагинацию решения не нашел. Подскажите пожалуйста smile

#2 10.11.2016 23:29:24

Re: Поиск имени в бд через форму -> после выдача в пагинацию

объясняю:
- переход по ссылке не передаёт того, что ты запостил запросом.
вывод:
= делай через get и namesearch гоняй гетом.

Не в сети

#3 11.11.2016 08:36:05

SerjKAZAN

Re: Поиск имени в бд через форму -> после выдача в пагинацию

Да , пробывал через get, но только в роутах никак не обработать такой путь

http://localhost:8000/guests/search?_token=UGaTaLBZpICHqUS412TUPFfgeLBw4csMmPiu01j0&namesearch=Елена&subscribe=Поиск

#4 11.11.2016 08:36:29

SerjKAZAN

Re: Поиск имени в бд через форму -> после выдача в пагинацию

Спасибо за обратную связь !

#5 11.11.2016 09:22:04

SerjKAZAN

Re: Поиск имени в бд через форму -> после выдача в пагинацию

Всё решилось, нашел такую вещь как appends и все встало на места

$guest->appends(['value'=$request])->render();

действительно нужно было get-ом выбивать

#6 11.11.2016 11:34:18

Re: Поиск имени в бд через форму -> после выдача в пагинацию

SerjKAZAN пишет:

Да , пробывал через get, но только в роутах никак не обработать такой путь

http://localhost:8000/guests/search?_token=UGaTaLBZpICHqUS412TUPFfgeLBw4csMmPiu01j0&namesearch=Елена&subscribe=Поиск

1. токен уже не нужен в гете.
2. сделай яваскрипт событие и повесь его на onSubmit формы, возвращаемое false
2.1 в методе строй нужную ссылку и переходи по ней
3. дальше уже пагинатор строй от параметров, а форма будет не нужна до тех пор, пока не введут новый нидл

Не в сети

Подвал раздела