如何在Filament v3.0提交表单后自动插入当前的user_id

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

我目前正在 FilamnentPHP v3 中开发一个项目,我正在尝试找出如何自动将当前 user_id 传递到我的数据库实体。

我想创建一个隐藏的输入字段并将该字段的默认值设置为当前的 user_id。但看起来 Filament 忽略了 hide() TextInput 并插入 null 或根本不执行任何操作。

我的错误解决方案

TextInput::make('user_id')
        ->label(__('messages.created_by'))
        ->required()
        ->default(
              Filament::auth()->id()
        )->readOnly()
            ->hidden()

那么在 Filament v3 中,有什么方法可以在表单提交后自动将值传递到数据库。

我也尝试查看 dilament-docu,但我没有真正幸运地找到可以帮助我解决问题的东西

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

您可以尝试为模型创建一个观察者。

class PostObserver
{
  public function creating(Post $post)
  {
    if (!isset($post->user_id) && auth()->check()) {
      $post->user_id = auth()->id();
    }
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.