【问题标题】:Posting URL parameter to middleware in Laravel 6在 Laravel 6 中将 URL 参数发布到中间件
【发布时间】:2020-06-24 20:14:33
【问题描述】:

我需要将一个 url 中的值传递给我的中间件类以用于进一步的逻辑。我已经看到很多资源可以用于get 请求,但我还没有看到任何post 请求。我尝试在路由中添加变量,例如:

Route::post('orders/created/{$name}', 'myController@orderCreated');

但是当通过邮递员发出这个 HTTP 请求时,我收到一个 404 请求。我可以看到路线被正确列出,即使在清除缓存之后也是如此。如下图:

+--------+----------+------------------------------------+--------+---------------------------------------------------------------+------------------------------+
| Domain | Method   | URI                                | Name   | Action                                                        | Middleware                   |
+--------+----------+------------------------------------+--------+---------------------------------------------------------------+------------------------------+
|        | POST     | webhooks/orders/cancelled/{$name}  |        | App\Http\Controllers\myController@orderCancelled              | web,auth.webhook             |
|        | POST     | webhooks/orders/created/{$name}    |        | App\Http\Controllers\myController@orderCreated                | web,auth.webhook             |
+--------+----------+------------------------------------+--------+---------------------------------------------------------------+------------------------------+

我尝试在中间件函数中添加 Request $request, $name 参数,但我不确定自己做错了什么。使用 Laravel 甚至可以做到这一点吗?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    在url中,你应该省略$,像这样

    Route::post('orders/created/{name}', 'myController@orderCreated');
    

    然后你可以在你的中间件中从$requestobject 访问它,像这样

    $request->route('name');
    

    【讨论】:

    • 这是修复,我疯了想弄清楚为什么它不起作用。谢谢!
    猜你喜欢
    • 2020-08-09
    • 2015-11-12
    • 2018-02-03
    • 2018-04-04
    • 2021-11-14
    • 2016-11-10
    • 2015-10-30
    • 2017-03-06
    • 2020-05-21
    相关资源
    最近更新 更多