2016-11-02 2 views
0

У меня есть маршрут типа GET с некоторыми параметрами. НапримерLaravel Routing :: проверить значение параметра и перенаправить

Route::get('/my-route/{id}',array('uses'=>'[email protected]')); 

Я хочу, чтобы проверить значение идентификатора параметра и если этот идентификатор = 1, то перенаправление на другой маршрут еще продолжать с ним. То, что я делаю, как этот

Route::get('/my-route/{id}',function($id){ 
    if($id==1){ 
     return Redirect::to(URL::route('my-another-route')); 
    } 
    else{ 
     //What should I do here so my route works as before. 
    } 
}); 

В остальное части я хочу, чтобы мои маршруты в myController @ MyAction вместе с параметрами.

Благодаря

+0

Нечто подобное не должно контролироваться в маршруте. Я бы рекомендовал вам сделать это в вашей функции контроллера, например 'if ($ id == 1) return redirect() -> route ('RouteName'); – DestinatioN

ответ

0

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

public function myAction() { 

    if ($id == 1) { 
     return Redirect::to(URL::route('my-another-route')); 
    } 

в верхней части вашего контроллера.

Кроме того, если вы используете только uses => '[email protected]' на с маршрутом, вы можете просто сделать:

Route::get('/my-route/{id}','[email protected]'); 

Надеется, что это помогает!

1

Вы можете сделать это, как:

Route::get('/my-route/{id}',function($id){ 
    if($id==1){ 
     return Redirect::to(URL::route('my-another-route')); 
    } 
    else{ 
     return app()->call(myController::class, ['id' => $id], 'myAction'); 
    } 
});