重定向::在Laravel 5中的URL中使用参数的路由

2022-08-30 16:53:52

我正在开发一个Laravel 5应用程序,我有这条路线

Route::get('states/{id}/regions', ['as' => 'regions', 'uses' => 'RegionController@index']);

在我的控制器中,在我正确进行 post 调用后,我想使用以下命令重定向到该视图:

return \Redirect::route('regions')->with('message', 'State saved correctly!!!');

问题是我不知道如何传递{id}参数,它应该在我的URL中。

谢谢。


答案 1

您可以将路由参数作为第二个参数传递给 :route()

return \Redirect::route('regions', [$id])->with('message', 'State saved correctly!!!');

如果它只是一个,你也不需要把它写成数组:

return \Redirect::route('regions', $id)->with('message', 'State saved correctly!!!');

如果您的路由具有更多参数,或者只有一个参数,但您希望明确指定哪个参数具有每个值(出于可读性目的),则始终可以执行以下操作:

return \Redirect::route('regions', ['id'=>$id,'OTHER_PARAM'=>'XXX',...])->with('message', 'State saved correctly!!!');

答案 2

你仍然可以这样做:

return redirect()->route('regions', $id)->with('message', 'State saved correctly!!!');

如果您有多个参数,则可以将参数作为数组传递,例如:假设您必须在路由中传递特定区域的首都,则路由可能如下所示:

Route::get('states/{id}/regions/{capital}', ['as' => 'regions', 'uses' => 'RegionController@index']);

然后,您可以使用以下命令进行重定向:

return redirect()->route('regions', ['id' => $id, 'capital' => $capital])->with('message', 'State saved correctly!');

推荐