2016-11-02 2 views
0

いくつかのパラメータを持つGETタイプのルートがあります。たとえば、Laravel Routing ::パラメータ値を確認してリダイレクト

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

パラメータIDの値をチェックし、このIDが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

これが動作するようにして、コントローラへのルートがあなたのコントローラの状態の上に、その後if文をそれがあった方法に戻ってあなたの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'); 
    } 
}); 
関連する問題