Laravel Filament 3 RichEditor fileAttachnetsDirectory -将文件保存在不同的目录下,为每个模型

wlwcrazw  于 6个月前  发布在  其他
关注(0)|答案(1)|浏览(60)

我有文章模型与main_text列,我使用RichEditor编辑,所以我可以添加一些照片之间的文字。这一切都很好,除了当我删除后,所有的照片都没有被删除后,这是不好的。我想出了一个主意,存储在不同的目录中的照片为每个职位。这样我就可以删除目录时,职位被删除。
这是我的想法

class PostResource extends Resource
{
  $attachmentDirectory = uniqid();

  return $form
     ->schema([
         Forms\Componenta\Hidden::make('attachments_directory')
            ->default($attachmentDirectory),
         RichEditor::make('main_text')
            ->fileAttachmentsDirectory(function() use ($attachmentDirectory) {
               return 'public/posts/' . $attachmentDirectory;
            }),
     ]);

...

字符串
当我创建一个新的记录时,这工作得很好,但当现有的记录被编辑时就不那么好了,因为attachmentDirectory再次生成,这是错误的,因为在编辑时,它应该从现有的记录中提取。
所以我的问题是:
如何在PostResource中访问现有记录(如果记录被编辑)并获取attachment_directory的数据并将其传递给RichEditor,以便它可以知道在哪里存储文件?

6fe3ivhb

6fe3ivhb1#

我只是找到了答案。现有记录中的attachments_directory列的值可以这样访问:

$form->model->attachments_directory

字符串
所以我可以这么做

public static function form(Form $form): Form
{
   $attachmentDirectory = $form->model->attachments_directory ?? uniqid();

        return $form
            ->schema([
...

相关问题