Laravel Nova文本字段占位符修改及LastPass图标问题咨询
Laravel Nova Text字段占位符修改及LastPass图标问题解决
一、修改占位符文本/处理模型默认值覆盖问题
你模型中定义的$attributes是设置字段的默认值,而非占位符,所以Nova会在加载表单时自动将这个默认值填充到输入框中,导致占位符无法显示。针对不同需求,有两种处理方式:
场景1:不需要模型层面的默认值
直接移除模型里protected $attributes数组中'name' => 'Member Name'这一行,然后在Nova字段中使用placeholder()方法设置自定义占位符:
Text::make('Name') ->rules('required', 'string') ->placeholder('请输入会员名称'); // 替换为你需要的占位符文本
场景2:需要保留模型默认值,但Nova表单不显示默认值
如果要在数据库层面保留默认值,但在Nova创建表单中仅显示占位符(不填充默认值),可以通过resolveUsing()方法判断路由场景,仅在创建页面清空默认值:
Text::make('Name') ->rules('required', 'string') ->placeholder('请输入会员名称') ->resolveUsing(function ($value) { // 仅在创建新记录时返回null,编辑页面保留原有值 return request()->routeIs('nova.pages.create') ? null : $value; });
二、LastPass图标出现的原因及解决方法
输入框上的LastPass图标是LastPass浏览器扩展自动识别到该输入框为名称/用户名类字段后添加的,和Laravel Nova本身无关。要隐藏这个图标,可以给字段添加data-lpignore属性,阻止LastPass识别:
Text::make('Name') ->rules('required', 'string') ->placeholder('请输入会员名称') ->extraAttributes([ 'data-lpignore' => 'true', ]);
内容的提问来源于stack exchange,提问作者jkstallard
相关产品推荐
相关产品推荐

