Laravel page markup does not work with date search

I have several search forms in my application in which pagination works fine, but when it comes to the search date, I only get the first page, when I try to go to the second page, I get an undefined $ variable ticket. When I look at the URL, I see that it does not accept the date value with it on the next page.

Here is my code:

<tbody class="searchTable">
  @foreach($ticket as $tickets)
    <tr>
        <td>
            {{Carbon::parse($tickets->created_at)->format('m/d/Y')}}
        </td>
        <td><a href="/ticket/{{$tickets->id}}">{{$tickets->id}}</a></td>
        <td><a href="/ticket/client/{{$tickets->clientName}}">{{$tickets->clientName}}</a></td>
        <td>
            {{Carbon::parse($tickets->dueDate)->format('m/d/Y')}}   
        </td>
        <td>{{$tickets->refNumber}}</td>
        <td>{{$tickets->invoiceNumber}}</td>
        <td>{{$tickets->jobLocation}}</td>
        <td>{{$tickets->workDescription}}</td>
        <td>{{$tickets->jobStatus}}</td>
    </tr>
  @endforeach
</tbody> 
{!! $ticket->appends(Request::only('_token','search'))->render() !!}

This is the controller:

  $ticket = DB::table('tickets')
            ->whereBetween('created_at', [$newDateFrom, $newDateTo])
            ->orderBy('created_at', 'desc')
            ->paginate(10);
  return view('ticketsView', compact('ticket'));
+4
source share
1 answer

Here is my solution:

, paginator, . - name . . :

{!! $ticket->appends(Request::only(['dateFrom'=>'dateFrom', 'dateTo'=>'dateTo', 'search'=>'search', 'filter'=>'filter', 'dueDateFrom'=>'dueDateFrom','dueDateTo'=>'dueDateTo']))->render() !!} 

, URL date dateFrom, , . , .

:

 <form class="form-horizontal" role="form" method="GET" action="/ticket/searchresults" accept-charset="UTF-8" enctype="multipart/form-data">
   <div class="text-centered">
     <p><strong>Search by dates:</strong></p>
   </div>
   <div class="form-group">
     <label for="filter">Select Client (optional)</label>
     <select class="form-control" name="filter" type="text">
       <option disabled selected> -- select client -- </option>
       @foreach($selectClient as $selectClients)
         <option value="{{$selectClients->name}}">{{$selectClients->name}}</option>
       @endforeach
     </select>
   </div>
   <div class="form-group">
     <label for="dateFrom">From:</label>
     <input class="datepicker2 form-control" name="dateFrom" type="text" required/>
   </div>
   <div class="form-group">
     <label for="dateTo">To:</label>
     <input class="datepicker2 form-control" name="dateTo" type="text" required/>
   </div>
   <button type="submit" class="btn btn-primary"><span class="fa fa-fw fa-search"></span></button>
 </form>
+1

Source: https://habr.com/ru/post/1622287/


All Articles