Laravel 从 URL 获取未命名的 "GET" 参数 ID

Laravel get unamed "GET" parameter id from URL

我正在尝试从 url 中获取一个值,它看起来或多或少像这样:

http://localhost:8000/new-user/7

作为参数在 url 中传递的数字 7 是一个 ID,我从 blade 表单中提交该 ID 作为对我在控制器中执行的操作的请求,但我无法得到它无论如何价值。 这是我到目前为止尝试过的:

我试图在提交表单的控制器中使用它

$request->route('company_id');

我也尝试将其作为正确的 GET 参数获取:

<input type="hidden" name="company_id" id="company_id" value="{{app('request')->input('company_id')}}">

我也试过这个:

<input type="hidden" name="company_id" id="company_id" value="{{Input::get('company_id')}}">

还有这个:

<input type="hidden" name="company_id" id="company_id" value="{{$_GET['company_id']}}">

None os 这些选项有效,但我仍然收到一个空值。

关于如何获取这个变量有什么想法或建议吗?

谢谢!

一个route parameter and a query parameter是两个不同的东西。

如果您有这样定义的路由:

/** routes/web.php */

Route::get('/new-user/{id}', 'UsersController@show');

在这种情况下$id是一个路由参数。因此,要进入 blade 视图,您可以这样做:

/** resources/my_view.blade.php */

{{ request()->id }}

因此,对于像您使用的 http://localhost:8000/new-user/7 这样的请求,应该输出:7.

另一种情况是你有 query param。这些变量不需要在路由中定义。例如这种类型的调用,使用在上一个示例中定义的相同路由:

GET http://localhost:8000/new-user/7?foo=bar
                                    ^^^^^^^^

在这种情况下,foo=bar 可以这样访问:

{{ request()->query('foo') }} // 'bar'