如何通过';前缀';和组中路线的参数(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)