我被这个问题困扰了好几天,所以我提出这个问题,并且还将发布此问题的修复程序,因为没有关于此更改的文档,也没有在任何地方提到。
对于任何构建自定义 nova 组件的人来说,您都熟悉该元素
DefaultField
,因此您的 .vue 文件中包含以下行:
<DefaultField fieldName="MyFieldName" :fullWidthContent="false" :field="{stacked: false, visible: true}">
问题是,在较新的 laravel nova 版本中,如果您将 laravel nova 升级到 4.27.x,例如,您为该字段设置的标签将永远不会显示。
原因是在供应商文件中的
DefaultField.vue
(vendor/laravel/nova/resources/js/components/DefaultField.vue)
开头有一个withLabel参数的检查,
v-if="field.withLabel"
这会导致整个组件不包含标签元素,当然看起来已损坏。
解决此问题的方法是调整您的
DefaultField
以包含 withLabel
参数,例如
<DefaultField fieldName="MyFieldName" :fullWidthContent="false" :field="{stacked: false, visible: true, withLabel: true}">
我希望这个答案可以节省其他在升级后陷入此问题的人的时间。