2016-05-17 10 views
0

私はリソースコントローラでLaravelルートを使用しています。Laravel 5.2のカスタムルート

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

私は別のルートに要求を転送できるカスタムルートを生成したいと思います。使用するルートの名前は、postパラメータで渡す必要があります。 「www.mysite.com/navigate」というURLにアクセスしたとします。このURLには、値 'route1'を持つ 'use_controller'という1つのポストパラメータが含まれています。したがって、次のようなものになります:

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

いいえ、私はナビゲート内に何も持っていません。私はすべてのルート要求のエントリーポイントとしてnavigateを使いたい。そこから、すべてのリクエストをルーティングする必要があります。 –

答えて

0

私は以前と同じようなことをしました。私はすべてのルートを「リソース」として宣言していましたが、私は1つの主要ルートを持っていました。それから私は、URLリクエストからパラメータを取って、そのメインルートからのリダイレクトを作った:あなたはパラメータから、コントローラとアクションが実際に存在するかどうかを確認するために検証を設定する必要があります。もちろん、

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

+0

どうもありがとうございました。しかしここで私はすべてのメソッドを別々に宣言しなければなりません。例えばコントローラ@インデックス、コントローラ@ショー、コントローラ@アップデートなど? –

+0

そうです、あなたがRoute :: resourceのようにrestfullコントローラを使いたいのであれば、それらのメソッドをコントローラに持たなければなりません。他に何か覚えていますか? – TheFallen