Filament PHP v3:在禁用的表单字段上,ID 不会写入数据库

问题描述 投票:0回答:1

我目前正在开发 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被写入数据库?

php laravel callback frameworks laravel-filament
1个回答
0
投票

可以考虑将

readOnly
default
一起使用,但它在 select 上不可用,这也是合理的,因为如果是 select,怎么可能是 readOnly 字段呢?

您可能想要使用具有默认值的文本输入,如下所示:

Forms\Components\TextInput::make('user_id')
    ->default(
        auth()->id()
    )
    ->readOnly()
    ->label(__('messages.created_by')),
© www.soinside.com 2019 - 2024. All rights reserved.