2016-03-28 5 views
2

正しく動作しません:それはURL内のデータに応じたプロファイルが表示されます以下のようにポストデータは、私がルートを持っているLaravel

Route::get('/{region}/{summonername}', function() { 
    return 'Summoner Profile'; 
}); 

私は、入力ボックスのと成りホームページのフォームを持っていますリージョンセレクター。このデータを投稿しています:

Route::post('/summoner/data'); 

問題は、私がフォームデータをどのように変換できるかわかりません。召喚師の名前と地域を、ユーザーがプロファイルページに表示されるurl形式に変換し、urlは/ {地域}/{召喚名}になります。私は私のコントローラの中でRedirect :: toを使うはずですか?私はそれがやっかいなやり方だと感じています。助言がありますか?

私がデータを投稿すると、URLは '/ summoner/data'と表示されます。

これは意味があることを願っています。より明確にする必要がある場合はお知らせください。

+0

がでurlencodeを検索してみてください。 – aldrin27

答えて

1

ルートの操作を行います。

Route::post('/summoner/data','[email protected]'); 

Route::get('/{region}/{summonername}', function() { 
return view('SummonerProfile'); 
}); 

コントローラ:

public function FunctionName() 
{ 
$SummonerName = Input::get('SummonerName'); 
$Region = Input::get('Region'); 
return Redirect::to('/{$Region}/{$SummonerName}'); 
} 

これがうまくいくと思います。それを試してみてください!ルートを使用した

Route::post('/summoner/data',function() { 
$SummonerName = Input::get('SummonerName'); 
$Region = Input::get('Region'); 
return Redirect::to('/{'.$Region.'}/{'.$SummonerName.'}'); 
}); 

Route::get('/{region}/{summonername}', function() { 
return view('SummonerProfile'); 
}); 
+0

コントローラーを唯一の方法で使用していますか? – Elevant

+0

いいえ、あなたもルートで使用することができます。しかし、私はこのパターンに従い、より簡単で柔軟になります。 – Sunil

+0

Route Onlyを使ってこれを行う方法を教えてもらえますか? – Elevant

1

はい、あなたがリダイレクトする必要があります。

Route::post('/summoner/data', function (Request $request) { 
    return redirect()->url($request->region .'/'. $request->summonername); 
}); 
+0

上記は機能していません。下のRouteからSummoner Profileが表示されますが、/ summoner/data?summonernameは表示されますが... Route :: get( '/ {region}/{summonername}'、function(){ return 'Summoner Profile'; }); – Elevant

+0

ここでの順序は、1つは 'get'で、もう1つは' post'であるため、無関係です。フォームアクションを示してください。 – user2094178

+0

action = "/ summoner/data" – Elevant

0

あなたはURLからデータを取得したい場合は、単に以下の

use Illuminate\Http\Request; 
Route::post('/summoner/data', function (Request $request) { 
    echo $request->segment(1); // gives summoner 
    echo $request->segment(2); // gives data 
}); 
+1

本来、私はフォームにデータを投稿する必要があり、url =/{region}/{summonername}のようにapiのフォームデータにGetパラメータを使用します。 – Elevant

関連する問題