2016-05-17 6 views
0

Я использую маршруты Laravel с контроллером ресурсов. У меня есть два пути для моего приложения следующим образом:Пользовательские маршруты в Laravel 5.2

Route::resource('route1','route1Controller'); 
Route::resource('route2','route2Controller'); 

Теперь я хочу, чтобы генерировать пользовательский маршрут, который может переслать запрос на другой маршрут. Имя используемого маршрута должно быть передано параметром post. Предположим, я посетил следующий URL: 'www.mysite.com/navigate'. Этот URL-адрес включает в себя один параметр post, называемый «use_controller», имеющий значение «route1». Таким образом, это должно быть примерно следующее:

Route::get('navigate',function(){ 
    $use_controller == Request::all()['use_controller']; 
    if($use_controller=="route1") 
     use Route::resource('route1','route1Controller'); 
    else if($use_controller=="route2") 
     use Route::resource('route2','route2Controller'); 
}); 

Возможно ли это сделать? Заранее спасибо.

+0

Вы имеете в виду, что у вас есть форма внутри маршрута '/ navigate', которая содержит вход use_controller для отправки по почте? В противном случае это не имеет смысла, о чем вы говорите. –

+0

Нет. У меня нет ничего внутри навигации. Я хочу использовать навигацию в качестве точки входа для каждого запроса маршрута. Оттуда каждый запрос должен быть маршрутизирован. –

ответ

0

Я сделал что-то подобное некоторое время назад. У меня были все маршруты, объявленные как «ресурс», и у меня был один основной маршрут. Тогда я взял параметры из запроса URL и сделал перенаправление с этим основным маршрутом:

return redirect()->action("{$controller}@{$action}"); 

Конечно, вы должны настроить валидации, чтобы проверить, если контроллер и действие от параметров на самом деле существуют.

+0

Хорошо. Большое спасибо. Но здесь я должен объявить все методы отдельно. например контроллер @ index, контроллер @ show, контроллер @ обновление и т. д.? –

+0

Ну да, если вы хотите использовать контроллеры restfull (как вы делаете с Route :: resource), вы должны иметь эти методы в контроллере. У вас есть что-то еще в виду? – TheFallen

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