如何从 URL 获取参数

How to get a param from URL

Laravel 8

您好! 我有这样的表格

<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>

然后提交表单 URL 得到这样的字符串:

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);
}

在这种情况下不会调用此函数。

非常感谢!

您不需要在 route 中包含 rows。有一种方法可以做到这一点,首先你应该从路线中删除 {rows}

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

然后更改indexPerpage方法:

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

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