【发布时间】:2020-03-29 17:03:05
【问题描述】:
我有一个区域设置中间件,它从请求中获取第一段并将其设置为区域设置:
public function handle($request, Closure $next)
{
$locale = $request->segment(1);
session(['locale' => $locale]);
app()->setLocale($locale);
return $next($request);
}
路由随后在区域前缀后面定义,如下所示:
Route::prefix('{lang}')->where(['lang' => '[a-zA-Z]{2}'])->middleware('locale')->group(function () {
Route::get('conversation/{from}/{to}', 'ConversationController@secureChatPage')->name('chat');
....
我现在遇到的问题是,当我在 ConversationController 中调用方法时,我不能再这样做了:
public function secureChatPage($from, $to)
{ ... }
因为$from 参数采用区域设置的值(例如en)。这意味着我必须在方法属性前面加上另一个变量$locale,并在需要路由参数的地方这样做。
有没有干净的方法解决这个问题?
【问题讨论】: