无法获取路由参数 - Laravel 6

Not able to get Route parameter - Laravel 6

我已经尝试了多种解决方案,但还没有奏效,我正在尝试获取从视图传递的控制器中的路由参数。 这是我创建路线的方式:

Route::get('addOptions/{questionId}', 'QuestionController@addOptions')->name('addOptions');

下面是我如何将参数传递给视图中的路由:

<a href="{{ route('admin.addOptions', $data['question']->id) }}" class="btn btn-success">Add Options</a>

这是我试图在控制器中获取的内容,但它返回的是空数组:

public function addOptions(Request $request)
{
   $allParameters = $request->input(); //not working
    //$allParameters = $request->all(); //not working
    //$allParameters = Input::all();    //not working

    return $allParameters;
}

它returns空数组[]像这样。 编辑:但是 url 在路由 addOptions 看起来像这样 http://127.0.0.1:8000/admin/addOptions/4 其中 4 是 questionId,这意味着参数正在传递但未检索。 我在这里做错了什么?请指导,谢谢。

你应该经过这样的路线:

<a href="{{ route('admin.addOptions', ['questionId' => $data['question']->id]) }}" class="btn btn-success">Add Options</a>

至于Laravel docs.,路由参数通过一个数组传递,该数组的键引用该参数

$url = route('profile', ['id' => 1]);

要在控制器中检索数据,您应该使用:

   $request->route()->paremeters()

 $request->route('parameter_name')

如果要传递参数

<a href="{{ route('admin.addOptions', $question->id }}" class="btn btn-success">Add Options</a>

我认为你的函数参数有误 您正在从 Route 传递问题 ID 所以您的函数应该像

public function addOptions($questionId)
{
  $allParameters = $questionId; // you question ID passed throught Route
  return $allParameters;
}