Redirect:: маршрут с параметром в URL в Laravel 5

Я разрабатываю приложение Laravel 5, у меня есть этот маршрут

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

в моем контроллере после правильного вызова post Я хочу перенаправить на это представление с помощью этой команды:

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

проблема в том, что я не знаю, как передать параметр {id}, который должен быть в моем URL.

спасибо.

4 ответов


вы можете передать параметры маршрута в качестве второго аргумента в 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!!!');

вы все еще можете сделать это так:

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!!!');

вы можете передать параметр {id} с таким перенаправлением

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

есть несколько способов перенаправить этот url в laravel:
1. Использование url с глобальной функцией redirect helper
return redirect('states/'.$id.'/regions')->with('message', 'State saved correctly!!!');
2. Использование именованного маршрута
return redirect()->route('regions', ['id' => $id])->with('message', 'State saved correctly!!!');
3. Использование действия контроллера
return redirect()->action('RegionController@index', ['id' => $id])->with('message', 'State saved correctly!!!');