为什么Laravel认为类别是地方

发布于 2025-01-24 09:12:55 字数 630 浏览 0 评论 0原文

我被Laravel本地化所困扰。我想要路线中的环境可选。但是问题是,如果未发送语言环境,则默认情况下要EN。如果语言环境在URL中没有明确。 Laravel将第一个参数(例如类别)视为语言环境。

Route::group(["prefix"=>'{locale?}','middleware'=>'getLang'],function() {   
    Route::get('/',[WebsiteController::class,'get_homepage'])->name('homepage');
    Route::get('{category}',[WebsiteController::class,'category_all_news'])->name('category_all_news')->middleware('getLang');
    Route::get('{category}/{slug}',[WebsiteController::class,'get_a_news_blog'])->name('get_a_news_blog')->middleware('getLang');  
});

我该如何解决? 提前致谢。

I am stuck with laravel localization. I want locale optional in my routes. But issue is that if locale is not send i want en by default. If locale is not explicitly in URL. Laravel considers first parameter like category as Locale.

Route::group(["prefix"=>'{locale?}','middleware'=>'getLang'],function() {   
    Route::get('/',[WebsiteController::class,'get_homepage'])->name('homepage');
    Route::get('{category}',[WebsiteController::class,'category_all_news'])->name('category_all_news')->middleware('getLang');
    Route::get('{category}/{slug}',[WebsiteController::class,'get_a_news_blog'])->name('get_a_news_blog')->middleware('getLang');  
});

How can i solve this ?
Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

素衣风尘叹 2025-01-31 09:12:55

您可以在路线中定义可选参数,只需

在您的情况下,只需在它们的情况下添加问号即可,您可以

Route::get('/',[WebsiteController::class,'get_homepage'])->name('homepage');
Route::get('{locale?}/{category}',[WebsiteController::class,'category_all_news'])->name('category_all_news')->middleware('getLang');
Route::get('{locale?}/{category}/{slug}',[WebsiteController::class,'get_a_news_blog'])->name('get_a_news_blog')->middleware('getLang');  

在方法传递方法时在类别 前添加一个参数参数

https://laravel.com/laravel.com/docs/docs/9.x/路由#参数 - 选项参数

You are able to define optional parameters in your routes, by simply adding a question mark before them

In your case, you can add a parameter for the locale before your category

Route::get('/',[WebsiteController::class,'get_homepage'])->name('homepage');
Route::get('{locale?}/{category}',[WebsiteController::class,'category_all_news'])->name('category_all_news')->middleware('getLang');
Route::get('{locale?}/{category}/{slug}',[WebsiteController::class,'get_a_news_blog'])->name('get_a_news_blog')->middleware('getLang');  

When passing the locale variable in your method you can just define a default value for the parameter

https://laravel.com/docs/9.x/routing#parameters-optional-parameters

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文