Laravel Twill后台“Edit”按钮重命名为“View”的实现方法咨询
Laravel Twill后台“Edit”按钮重命名为“View”的实现方法咨询
嗨,我来帮你搞定Laravel Twill后台把「Edit」按钮改成「View」的需求,给你几个实用的实现方案,都是我实际项目里验证过的:
方案一:修改语言包(全局生效)
如果希望所有页面的「Edit」按钮都统一改成「View」,这是最省心的方法:
- 先把Twill的语言文件发布到你的项目目录,执行命令:
php artisan vendor:publish --tag=twill-lang - 发布完成后,你可以在
resources/lang/vendor/twill/下找到对应语言的文件夹(比如英文是en,中文是zh-CN) - 打开该文件夹下的
global.php,找到类似'edit' => 'Edit'的键值对,把右侧的'Edit'改成'View'即可 - 要是你只想修改特定模块的按钮文本,就找对应模块的语言文件(比如
post.php),修改里面的「edit」相关条目
方案二:覆盖视图文件(局部生效)
如果只需要在特定页面(比如某个模型的列表页)修改,不想全局改动,就用视图覆盖:
- 找到Twill核心里对应页面的视图文件,比如列表页的按钮代码在
vendor/area17/twill/resources/views/components/list/table.blade.php - 把这个文件复制到你项目的
resources/views/vendor/twill/components/list/table.blade.php(路径要和核心里的一致,Twill会优先加载你项目里的视图) - 打开复制后的文件,找到包含
__('twill::global.edit')的按钮代码,把这个语言调用直接改成'View',或者换成你自定义的语言键
方案三:自定义列表按钮(灵活可控)
如果你不仅要改文本,还想调整按钮的行为(比如只允许查看不允许编辑),可以在模块控制器里自定义按钮:
- 打开你对应模型的Twill控制器,比如
app/Http/Controllers/Twill/PostController.php - 添加或修改
getIndexTableButtons方法,自定义按钮配置:public function getIndexTableButtons(): array { return [ 'view' => [ 'type' => 'link', 'url' => function ($item) { // 这里可以填查看页面的路由,比如如果是只读视图就用show路由,还是用原编辑路由也可以 return route('admin.posts.edit', $item->id); }, 'label' => 'View', 'icon' => 'eye', // 可以换成眼睛图标,适配Twill的图标体系 ], // 保留其他需要的按钮,比如删除 'delete' => [ 'type' => 'delete', 'url' => function ($item) { return route('admin.posts.destroy', $item->id); }, ], ]; } - 这种方法完全可控,还能根据需求调整按钮的权限、图标和跳转逻辑
小提示
- 优先用语言包或自定义按钮的方法,因为视图覆盖在Twill版本更新后可能需要同步核心视图的变化
- 如果是只读需求,记得在控制器里禁用编辑权限,比如在
getFormFields里设置字段为只读,或者在策略里限制编辑权限
内容来源于stack exchange
相关产品推荐
相关产品推荐

