【问题标题】:Laravel routes are not working with parametersLaravel 路由不使用参数
【发布时间】:2019-11-07 12:56:21
【问题描述】:

我在 web.php 中声明了两个 laravel 路由,但是遇到 404 错误。

我想访问控制器中的路由参数值,基于此选择,我需要根据参数执行一些处理。

我的 web.php 代码

Route::group(
        ['namespace' => 'Admin', 'prefix' => 'admin', 'as' => 'admin.', 'middleware' => ['role:admin']],
        function () {
Route::get('transaction-verified/{user-id}/{tran-id}',['uses' => 'ForgotPassTranVerifyController@transaction_verified'])->name('transaction_verified');

});

我的控制器代码

public function transaction_verified($id,$tran_id)
    {
        $user = User::find($id);
        if($user)
        {
            $user->status = 'active';
            $user->save();
            $response = $this->broker()->sendResetLink(
                $user->email
            );
            echo'<pre>'; print_r($response); exit;
            $transaction = ForgotPassFineTransaction::find($tran_id);
            if($transaction)
            {
                $transaction->status = 'valid';
                $transaction->save();
            }
            $this->message = true;
            return redirect(route('admin.transaction-verify'));
        }

我是这样称呼路线的,

return '<a href="' . route('admin.transaction_verified', ['id'=> $row->id, 'tran-id'=> $row->tran_id]) . '" class="btn btn-info btn-rectangle"
                      data-toggle="tooltip" data-original-title="Edit">Send Email</a>

我想访问路由参数,并且基于参数需要完成一些任务。但我正面临 404 错误。我无法弄清楚出了什么问题?

【问题讨论】:

  • 我的回答有帮助吗?

标签: php laravel routes


【解决方案1】:

我可以看到一些问题:

  • 根据the Laravel docs,路由参数:

    ... 应该由字母字符组成,并且不能包含 - 字符。不要使用 - 字符,而是使用下划线 (_)。

    所以像{user-id}{tran-id} 这样的参数名称将不起作用。将它们更改为(例如){user_id}{tran_id}

  • 您的路由定义在 URL 中包含这两个参数:

    .../{user-id}/{tran-id}...
    

    当您使用route() 生成路由时,您必须为其提供两个具有相同名称的参数。但是你的代码给了它一个id

    ...['id'=> $row->id, 'tran-id'=> $row->tran_id]...
    

    您需要将id 更改为user-id,或者考虑到上述问题,user_id

【讨论】:

    猜你喜欢
    • 2016-03-05
    • 2021-02-04
    • 2017-10-01
    • 2018-04-05
    • 2020-01-23
    • 1970-01-01
    • 2013-11-24
    • 2017-10-25
    • 1970-01-01
    相关资源
    最近更新 更多