Laravel 让route生成URL超链接不用每次都设置语言参数 i18n前缀locale
2024-6-14|2024-6-20

夜火/xloong
type
Post
status
Published
date
Jun 14, 2024
slug
laravel-i18n-route-locale
summary
最近在使用laravel写一个需要i18n的项目,laravel设置i18n多语言很方便,没什么说的。但是我在使用route生成超链接地址时,每次都需要在route的参数里填写当前语言,才能生成对应的超链接。
tags
开发
PHP
Laravel
category
技术分享
icon
password
URL
Property
Jun 20, 2024 01:37 AM
注:以下内容基于php 8.1,laravel 10
最近在使用laravel写一个需要i18n的项目,laravel设置i18n多语言很方便,没什么说的。但是我在使用route生成超链接地址时,每次都需要在route的参数里填写当前语言,才能生成对应的超链接。
超链接类似这样:
www.baidu.com/zh_cn/xxx/xxxwww.baidu.com/en/xxx/xxx
使用route生成url的方式如下:
每次使用route时都需要设置,不管是在控制器还是在视图,搞的感觉就很傻,一直想找省事的地方统一设置,不用每次都去设置,但是一直没找到,想写个中间件来处理,也没搞好。
直到我查资料时翻到了一个文档: https://learnku.com/docs/laravel/5.7/urls/2260#225f3e
这样设置中间件就可以了:
设置kernel
路由配置文件中使用
像上面这样,将需要默认语言前缀的路由,写到group的匿名函数中就可以了。
之后,使用route生成url就不需要再附带语言参数了。