0

Laravel 8

Hello! I have some form like this

<form id="perpage" action="{{ route('partners.index.perpage') }}" method="get">

<label for="rows">Rows per page</label>

<select name="rows" id="rows" onchange="this.form.submit()">
    <option value="10">10</option>
    <option value="25">25</option>
    <option value="50">50</option>
</select>

Then the form is submited the URL gets string like this:

127.0.0.1:8000/partners/perpage?rows=25

127.0.0.1:8000/partners/perpage?rows=50



Route::get('partners/perpage/{rows}', 'App\Http\Controllers\PartnerController@indexPerpage')
    ->name('partners.index.perpage');

public function indexPerpage($rows)
{
    ddd('Hello');

    $total = User::find(Auth::id())->partners()->count();
    $partners = User::find(Auth::id())->partners()->simplePaginate($rows);
}

This function don`t calling in this case.

Thanks a lot!

Shoshin
  • 23
  • 5

1 Answers1

0

You don't need to include the rows in the route. There is a ways to do that, first you should remove the {rows} from the route:

Route::get('partners/perpage', 'App\Http\Controllers\PartnerController@indexPerpage')
    ->name('partners.index.perpage');

Then change the indexPerpage method:

public function indexPerpage()
{
    $rows = request('rows');

    $total = User::find(Auth::id())->partners()->count();
    $partners = User::find(Auth::id())->partners()->simplePaginate($rows);
}
Rouhollah Mazarei
  • 3,969
  • 1
  • 14
  • 20