Laravel Nova的Stack Fields在创建/编辑页面不显示如何解决?
Laravel Nova Stack字段创建/编辑页不显示解决方案
问题根因
Laravel Nova 原生Stack字段默认仅开启列表(索引)页的显示权限,创建页、编辑页的展示权限默认关闭,是出现该问题的核心原因。
修复方案
给每个Stack字段手动开启表单页的显示权限即可,两种常用配置可选:
- 按需开启指定页面:分别调用
showOnCreating()(创建页显示)、showOnUpdating()(编辑页显示)、showOnDetail()(详情页显示)控制可见范围 - 全场景显示:直接调用
showOnAllPages()开启所有页面的显示权限
修复后代码示例
public function fields(Request $request) { return [ ID::make(__('ID'), 'id')->sortable(), Stack::make('Headings', [ Text::make('Heading (en)'), Text::make('Heading (de)'), Text::make('Heading (ar)'), ])->showOnAllPages(), // 新增该行配置 Stack::make('Content', [ Text::make('Content (en)'), Text::make('Content (de)'), Text::make('Content (ar)'), ])->showOnAllPages(), // 新增该行配置 Image::make('Image')->disk('public')->prunable(), ]; }
注意事项
- 若Stack内的子字段单独配置了可见性规则(如
onlyOnIndex、hideWhenCreating等),需同步调整子字段的可见性,避免和Stack的配置冲突 - 若使用Nova 3及更早版本的第三方Stack字段扩展,需确认扩展本身支持表单页渲染,官方原生Stack字段为Nova 4版本开始内置
内容的提问来源于stack exchange,提问作者Artur Müller Romanov
相关产品推荐
相关产品推荐

