我目前正在开发 Filament PHP 应用程序,但有一个问题:我想显示注释创建者的用户名(在我的例子中),并且我想使该字段在 Filament 中不可修改。所以我想到了这个:
Select::make('user_id')
->options([
User::query()
->select([
DB::raw("name as name"),
'id',
])
->where('id', auth()->id())
->pluck('name', 'id')
->toArray()
])
->default(
auth()->id()
)->label(__('messages.created_by'))
->disabled(),
如果我禁用该字段,则不会将任何内容写入数据库。我基本上为零。
有没有办法禁用Field并确保user_id被写入数据库?
可以考虑将
readOnly
与 default
一起使用,但它在 select 上不可用,这也是合理的,因为如果是 select,怎么可能是 readOnly 字段呢?
您可能想要使用具有默认值的文本输入,如下所示:
Forms\Components\TextInput::make('user_id')
->default(
auth()->id()
)
->readOnly()
->label(__('messages.created_by')),