2015-05-03 2 views
5

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

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

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

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

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

спасибо.

ответ

7

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

Как вы можете видеть, мой маршрут Redirect :: route уже имеет параметр «сообщение». Как добавить параметр $ id, который должен быть помещен в URL-адрес, а также параметр «сообщение»? – Bellots

+1

@Bellots В показанном примере вы можете увидеть, что $ id передается как второй параметр в метод 'route()'. Этот второй параметр используется для построения маршрута. Любые «параметры», которые вы добавляете с помощью метода '()(), на самом деле - это просто данные, которые мелькают в сеансе, чтобы вы могли получить доступ к своей переадресации. Таким образом, ваша полная строка будет выглядеть следующим образом: 'return \ Redirect :: route ('regions', [$ id]) -> с ('сообщение', 'Состояние сохранено правильно !!!');' – patricus

+2

попробуйте этот 'return redirect ('states /' .$ id. '/ regions') -> with (['message' => 'Состояние сохранено правильно !!!']); ' –

0

Вы все еще могли бы сделать это следующим образом:

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

В тех случаях, когда у вас есть несколько параметров, вы можете передать параметры как массив, например, сказать, что вы должны были пройти капитал конкретного региона в вас маршрут, маршрут может выглядеть примерно так:

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

, а затем вы можете перенаправить с помощью:

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

Вы можете передать {ID} параметр с переадресацией, как этого

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

Есть несколько способов, чтобы перенаправить этот адрес в Laravel:
1. Использование URL с глобальным перенаправлением вспомогательной функцией
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('RegionCon[email protected]', ['id' => $id])->with('message', 'State saved correctly!!!');

Смежные вопросы