更新后的Laravel重定向

时间:2017-02-18 23:00:39

标签: laravel laravel-5 routes

我在名为AssetController的控制器中有一个更新操作。

在行动结束时,我会return \Redirect::route('asset.edit', array($id));

在我的路线中,我有Route::resource('asset', 'AssetController');

当我发布更新操作时,它会将我带到“/ asset / 8”(8是该资产记录的ID)。我希望它转到“/ asset / 8 / edit” - 换句话说,只需将用户返回到刚刚提交更新的编辑表单即可。

我也尝试了return \Redirect::back(),但也发送到“/ asset / 8” - 甚至认为他们刚提交的网页的网址是“/ asset / 8 / edit”。

为什么这不起作用?

6 个答案:

答案 0 :(得分:1)

注册你的口号:

Route::resource('asset', 'AssetController', ['names' => [ 'edit' => 'asset.edit ]]);

然后使用您的重定向:

\Redirect::route('asset.edit', array($id));

答案 1 :(得分:0)

您需要传递密钥

return \Redirect::route('asset.edit', array('id' => $id));

https://laravel.com/docs/5.4/responses#redirecting-named-routes

答案 2 :(得分:0)

我发现了问题。我的返回是在DB :: transaction()中,因此它忽略了它。

一旦我将它放在DB :: transaction()函数之外,我的原始return语句就可以了。

答案 3 :(得分:0)

别忘了添加元素输入:



<input name="_method" type="hidden" value="PATCH">
&#13;
&#13;
&#13;

编辑模板上的

或编辑刀片

答案 4 :(得分:0)

非常简单。只需使用以下代码:

return redirect(route('asset.edit', array('id' => $id)));

答案 5 :(得分:0)

您应该使用

return redirect("asset/".$id);

return redirect()->route('asset.edit', compact('id'));

return redirect()->route('asset.edit', ['id' => $id]);