我已经尝试了多种解决方案,但都不起作用,我正在尝试从一个视图传递的控制器中获取路由参数。下面是我创建路由的方式:
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;
}它返回空数组[],如下所示。编辑:但是路径addOptions上的http://127.0.0.1:8000/admin/addOptions/4看起来像这个url,其中的4是questionId,这意味着参数正在被传递,而不是被检索。我在这里做错了什么?请导游,谢谢。
发布于 2020-07-01 20:37:24
您应该像这样通过路由:
<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')发布于 2020-07-01 20:41:42
如果您想要传递参数
<a href="{{ route('admin.addOptions', $question->id }}" class="btn btn-success">Add Options</a>发布于 2020-07-01 20:50:59
我认为您的函数参数是错误的,您正在从Route传递问题id,因此您的函数应该如下所示
public function addOptions($questionId)
{
$allParameters = $questionId; // you question ID passed throught Route
return $allParameters;
}https://stackoverflow.com/questions/62676946
复制相似问题