2016-03-28 90 views
2

我有一个路线如下,将根据在URL中的数据显示配置文件:后数据不能正常工作Laravel

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

我主页上的形式,由一个输入框和区域选择器。我张贴此数据:

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

的问题是,我不知道我怎么可以转换形式的数据,例如。召唤者名称和区域转换为URL格式,其中用户将与个人档案页面一起显示,网址将为/ {region}/{summonername}。我应该使用重定向::到我的控制器内?我觉得这是一个糟糕的做法。有什么建议么?

现在,当我发布数据的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

以上不起作用,它显示从下面的路线召唤师配置文件,但它仍然显示/召唤师/数据?summonername ...路线::获得('/ {地区}/{summonername}',功能(){ 返回'Summoner Profile'; }); – Elevant

+0

这里的顺序是不相关的,因为一个是'get',另一个是'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

本质上我需要用户在表单中发布数据,并且网站将使用Get参数与来自我的api的表单数据,所以就像url =/{region}/{summonername} – Elevant