如何通过';前缀';和组中路线的参数(Laravel 7/8)?

如何通过';前缀';和组中路线的参数(Laravel 7/8)?,laravel,routes,Laravel,Routes,我有下一个路由文件: Route::prefix('{?lang}')->where(['lang' => '[a-zA-Z]{2}'])->middleware('locale')->group(function () { Route::get('/news/{news}', [App\Http\Controllers\NewsController::class, 'show'])->name('news.show'); }); 中间件是: publ

我有下一个路由文件:

Route::prefix('{?lang}')->where(['lang' => '[a-zA-Z]{2}'])->middleware('locale')->group(function () {

    Route::get('/news/{news}', [App\Http\Controllers\NewsController::class, 'show'])->name('news.show');

});
中间件是:

public function handle($request, Closure $next)
{
    if ($request->method() == 'GET') {
        $segment = $request->segment(1);

        if (!in_array($segment, config('app.locales'))) {
            $segments = $request->segments();
            array_shift($segments);
            $fallback = session('locale') ?: config('app.fallback_locale');
            $segments = Arr::prepend($segments, $fallback);

            return redirect()->to(implode('/', $segments));
        }

        session(['locale' => $segment]);
        app()->setLocale($segment);
    }

    return $next($request);
}
如果我使用这样的路由(在*.blade文件中)

有人能帮我吗?我已经用了3个小时了……

所以

<a href="{{ route('news.show', [app()->getLocale(),$new->slug]) }}">

在我的例子中,如果你给了一个默认值,那么会发生什么呢?像
{{route('news.show',['lang'=>'en','news'=>'a_slug'])}
相同的结果php artisan命令结果没有改变后,我不知道我必须做什么。。。
<a href='/en/home/'>
<a href="{{ route('news.show', ['lang' => app()->getLocale(), 'news' => $new->slug]) }}">
<a href="{{ route('news.show', [app()->getLocale(),$new->slug]) }}">
(string $lang, News $news)