首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法获取路由参数- Laravel 6

无法获取路由参数- Laravel 6
EN

Stack Overflow用户
提问于 2020-07-01 20:32:29
回答 3查看 32关注 0票数 0

我已经尝试了多种解决方案,但都不起作用,我正在尝试从一个视图传递的控制器中获取路由参数。下面是我创建路由的方式:

代码语言:javascript
复制
Route::get('addOptions/{questionId}', 'QuestionController@addOptions')->name('addOptions');

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

代码语言:javascript
复制
<a href="{{ route('admin.addOptions', $data['question']->id) }}" class="btn btn-success">Add Options</a>

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

代码语言:javascript
复制
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,这意味着参数正在被传递,而不是被检索。我在这里做错了什么?请导游,谢谢。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2020-07-01 20:37:24

您应该像这样通过路由:

代码语言:javascript
复制
<a href="{{ route('admin.addOptions', ['questionId' => $data['question']->id]) }}" class="btn btn-success">Add Options</a>

对于Laravel docs.,路由参数被传递给一个数组,该数组的键引用该参数

代码语言:javascript
复制
$url = route('profile', ['id' => 1]);

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

代码语言:javascript
复制
   $request->route()->paremeters()

代码语言:javascript
复制
 $request->route('parameter_name')
票数 1
EN

Stack Overflow用户

发布于 2020-07-01 20:41:42

如果您想要传递参数

代码语言:javascript
复制
<a href="{{ route('admin.addOptions', $question->id }}" class="btn btn-success">Add Options</a>
票数 0
EN

Stack Overflow用户

发布于 2020-07-01 20:50:59

我认为您的函数参数是错误的,您正在从Route传递问题id,因此您的函数应该如下所示

代码语言:javascript
复制
public function addOptions($questionId)
{
  $allParameters = $questionId; // you question ID passed throught Route
  return $allParameters;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62676946

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档