我在名为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”。
为什么这不起作用?
答案 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;
编辑模板上的
或编辑刀片
答案 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]);