Laravel将附加参数传递给控制器

时间:2016-09-27 12:20:28

标签: php laravel

我需要通过点击按钮从index.blade.php向我的edit.blade.php传递一个额外的参数($ uid)。

我的index.blade.php:

<a href="{!!action('FlyersController@edit', ['id' => Auth::user()->id, 'uid' => 1])!!}" type="button" class="btn btn-block btn-lg btn-info vorlageBtn card-link">Edit </a>

My FlyersController:

public function edit($id, $uid)
{

    return view('backend.flyers.edit')->withUid($uid);
}

使用上面的代码我得到一个错误:&#34;缺少参数2的App \ Http \ Controllers \ FlyersController :: edit()&#34;

我在这里做错了什么?

4 个答案:

答案 0 :(得分:2)

错误不是从action方法中抛出的。它来自该URL的路由。

检查将参数传递给控制器​​的URL。

如果这是你想要的URL localhost:8000/backend/flyers/10/edit?%24uid=1,那么第二个参数在$request变量中,不在控制器函数参数中。

答案 1 :(得分:1)

您应该将数组传递给action()帮助程序:

action('FlyersController@edit', ['id' => Auth::user()->id, 'uid' => 1])

答案 2 :(得分:1)

确定, 我能解决这个问题的唯一方法是在My FlyersController中使用以下内容:

public function edit(Request $request, $id)
{

    return view('backend.flyers.edit')->withRequest($request);
}

然后在我的视图中使用{{request-&gt; uid}}访问uid。

如果有人有更好的解决方案,请告诉我。

答案 3 :(得分:-1)

使用此代码

return view('backend.flyers.edit', ['var1' => $var1, 'var2' => $var2]);

这会将两个或多个变量传递给您的视图