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

OroPlatform:将文件关系添加到实体

如何解决OroPlatform:将文件关系添加到实体

上下文

我目前正在尝试将文件关系添加到我的 OroPlatform 项目的实体。 目标是让用户有机会在特定实体的创建/更新视图上上传文件

我在 OroPlatform 文档中读到我必须创建一个新的迁移:https://doc.oroinc.com/master/backend/bundles/platform/AttachmentBundle/attachment-bundle-config/#attachment-bundle-file-types

这是我创建的迁移:

<?PHP

namespace Baltimore\Bundle\AppBundle\Migrations\Schema\v1_1_1;

use Doctrine\DBAL\Schema\Schema;

use Oro\Bundle\AttachmentBundle\Migration\Extension\AttachmentExtension;
use Oro\Bundle\AttachmentBundle\Migration\Extension\AttachmentExtensionAwareInterface;
use Oro\Bundle\MigrationBundle\Migration\Migration;
use Oro\Bundle\MigrationBundle\Migration\QueryBag;

class AddAttachmentToBusinessUnit implements Migration,AttachmentExtensionAwareInterface
{
    /** @var AttachmentExtension */
    protected $attachmentExtension;

    /**
     * {@inheritdoc}
     */
    public function setAttachmentExtension(AttachmentExtension $attachmentExtension)
    {
        $this->attachmentExtension = $attachmentExtension;
    }

    /**
     * {@inheritdoc}
     */
    public function up(Schema $schema,QueryBag $queries)
    {
        $this->attachmentExtension->addFileRelation(
            $schema,'oro_business_unit','document',[],15
        );
    }
}

并且我已将此行添加到我的实体的 update.html.twig 中:form_row(form.document)

问题

当我尝试访问更新页面时,出现以下错误

"Neither the property "document" nor one of the methods "document()","getdocument()"/"isdocument()"/"hasdocument()" or "__call()" exist and have public access in class "Symfony\Component\Form\FormView"."

我已预热缓存以便为我的类生成访问器,并且方法 getDocument() 存在于生成文件 EX_OroOrganizationBundle_BusinessUnit.PHP

此外,该属性似乎已成功添加到我的实体中:

enter image description here

解决方法

要添加新的表单域,首先必须在表单类型扩展中定义它,然后才能从模板访问它。

How to Create a Form Type Extension

,

终于我的需求变了,但我想我有解决这个问题的答案了。
这是我要做的:

/**
* {@inheritdoc}
*/
public function up(Schema $schema,QueryBag $queries)
{
   $this->attachmentExtension->addFileRelation(
      $schema,'oro_business_unit','document',[
         'extend' => [
             'owner' => ExtendScope::OWNER_CUSTOM,'is_extend' => true
          ],'entity' => ['label'=>'oro.organization.businessunit.entity_label'],],15
   );
}

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