微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

OroPlatform:如何实现 MultiFileType

如何解决OroPlatform:如何实现 MultiFileType

上下文

我必须在我的 OroPlatform 实体之一上实现多文件上传字段。

我正在考虑实现它的步骤与 FileType 完全相同。

所以,我做了以下步骤:

public function up(Schema $schema,QueryBag $queries)
{
    $this->attachmentExtension->addFileRelation(
        $schema,'app_sinister','files',[],15
    );
}
  • 更改表单类型:
->add('files',MultiFileType::class,['label' => 'app.sinister.fields.files'])
  • 并将其添加到表单中:
form_row(form.files)

它似乎工作,因为属性出现:

enter image description here

问题

当我尝试保存表单时,出现此错误

enter image description here

我想知道是不是因为我在迁移中实现了 addFileRelation 扩展。我曾尝试使用 addAttachmentAssociation,它会在后台创建这些选项,但我不知道如何将此属性添加到我的 formType:

enter image description here

解决方法

在上面的迁移示例中,您已将关系添加到单个文件,但表单类型适用于多个文件。这会导致错误。

要修复它,您可以使用更复杂的迁移添加与多个文件的关系:

$this->extendExtension->addManyToOneRelation(
    $schema,$schema->getTable('oro_attachment_file_item'),'app_sinisters',$schema->getTable('app_sinister'),'id',[
        ExtendOptionsManager::MODE_OPTION => ConfigModel::MODE_READONLY,'extend' => [
            'is_extend' => true,'owner' => ExtendScope::OWNER_CUSTOM,'without_default' => true,'on_delete' => 'CASCADE',],'datagrid' => ['is_visible' => false],'form' => ['is_enabled' => false],'view' => ['is_displayable' => false],'merge' => ['display' => false]
    ]
);
$this->extendExtension->addManyToOneInverseRelation(
    $schema,'files',['id'],'cascade' => ['persist'],'orphanRemoval' => true,'fetch' => ClassMetadataInfo::FETCH_LAZY
        ],'merge' => ['display' => false]
    ]
);

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。