【发布时间】:2014-10-28 22:26:06
【问题描述】:
我是这样定义路线的:
/*
* Set up route patterns - patterns will have to be the same as
* in translated route for current language
*/
foreach(Lang::get('routes') as $k => $v) {
Route::pattern($k, $v);
}
Route::group(array('prefix' => Config::get('app.locale_prefix')), function()
{
Route::get('/{login}/', ['as' => 'login', 'uses' => 'LoginController@showLogin']);
});
根据所选语言,{login} 参数将变为英语中的 login 或例如波兰语中的 logowanie,并且路线以这种方式运行良好。
但是我在创建指向命名路由的重定向时遇到问题。
如果我简单地使用:
Redirect::route('login'));
如果将我重定向到 http://localhost/{login} url - 参数不会更改为 login 或 logowanie,具体取决于当前语言。
另一方面,如果我使用:
Redirect::route('login', Lang::get('routes'));
当然在routes.php 文件中我有很多路由,它将创建以下网址:
http://localhost/logowanie?register=rejestracja&dashboard=konto&logout=wyloguj
因此它将处理正确的{login} 参数,但它会将其他数组元素添加到查询字符串中的 url。
当然,在这种情况下,我可以只使用一个路由元素,但是对于每条路由,我都必须手动传递选定的参数,而不是整个数组。
问题 - 是否可以像上面一样传递整个路由数组,但以某种方式让 Laravel 只处理包含在路由中的参数而不添加查询字符串?
【问题讨论】:
标签: laravel laravel-4 laravel-routing