Yajra Laravel-Datatables-Buttons创建按钮路由跳转异常求助
这个问题大概率是因为datatables按钮默认启用了本地化路由生成逻辑,哪怕你的应用是纯英文环境也会被影响。这里有几个针对性的解决办法:
方法1:手动指定Create按钮的跳转URL
直接在创建按钮时显式绑定你需要的路由,绕过自动生成逻辑:
// 在AdminPostsDatatable.php的buttons方法中修改 Button::make('create')->url(route('admin.posts.create')),
这样按钮会直接使用你定义的admin.posts.create路由对应的URL,不会再自动翻译路径后缀。
方法2:确认Laravel的本地化配置
检查config/app.php文件里的locale设置,确保是英文:
'locale' => 'en',
如果这个值被意外改成了法语(比如'fr'),datatables按钮会自动根据本地化规则把create转换成法语的creer。
方法3:完全自定义按钮的文本与跳转
如果前两种方法没解决问题,可以直接完全控制按钮的显示文本和跳转地址:
Button::make('create') ->text('Create Post') ->url(route('admin.posts.create')),
这种方式彻底切断了本地化逻辑的影响,完全按照你的需求生成按钮。
问题根源说明
yajra/laravel-datatables-buttons的create按钮默认会读取Laravel的应用locale,自动生成对应语言的路由后缀。哪怕你没主动设置法语,也可能是第三方包、配置误改等隐性因素导致locale被切换,所以手动指定URL是最直接可靠的解决方案。
内容的提问来源于stack exchange,提问作者Dastan
相关产品推荐
相关产品推荐

