【问题标题】:How to get a param from URL [duplicate]如何从 URL 获取参数 [重复]
【发布时间】:2022-01-18 13:29:01
【问题描述】:

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

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

非常感谢!

【问题讨论】:

    标签: laravel url laravel-8


    【解决方案1】:

    您无需在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);
    }
    

    【讨论】:

    • 您能否将完整的路线文件添加到您的问题中。我认为有一条类似的路线会导致此问题。
    • 对不起!一直以来,我都遇到了路由缓存的问题。现在一切正常!再次感谢!
    猜你喜欢
    • 2014-01-12
    • 2013-04-09
    • 2021-08-16
    • 2012-09-17
    • 2012-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多