Shopware 6 为自定义实体创建数据库条目

Shopware 6 create DB entry for custom entity

我正在尝试按照 BundleExample 和 Storefinder 的思路为 Shopware6 构建一个插件,并且坚持为我的实体创建相应的条目。我向管理员添加了一个模块,它包含 3 个组件:列表、详细信息和创建 分别路由到 [vendor-name].[plugin-name].list/.detail/.create.

来自 custom\plugins[插件名称]\src\Resources\administration\module[供应商名称]-[插件名称]\index.js

    routes:{
        list:{
            component: '[vendor-name]-[plugin-name]-list',
            path: 'list'
        },
        detail:{
            component: '[vendor-name]-[plugin-name]-detail',
            path: 'detail/:id',
            meta:{
                parentPath: '[vendor-name].[plugin-name].list'
            }
        },
        create:{
            component: '[vendor-name]-[plugin-name]-create',
            path: 'create',
            meta:{
                parentPath: '[vendor-name].[plugin-name].list'
            }
        }

/list 在数据库中没有条目时按预期显示,这意味着只有智能栏可见。 /detail 无法工作,因为还没有实体,所以没有 id。 /create 应该通过

生成一个实例
created(){
   this.repository = this.repositoryFactory.create('[vendor-name]_[plugin-name]');
   this.repository.create(this.context);
}

但什么也没有发生。

我确信我在某处忽略了一个基本步骤,如果有任何关于如何让它实际生成条目的指示,我将不胜感激。 如果进一步的代码有助于澄清问题,我很乐意提供。

this.repository.create(this.context); 行将在客户端创建自定义实体的实体对象。 要保存该实体,您必须调用 this.repository.save(entity, this.context);。 然后你应该能够在浏览器的开发控制台中看到一个请求被发送到服务器。

有关详细信息,请查看 docs

请记住,this.repository.create(this.context); 会创建一个空的虚拟实体,因此您至少需要设置自定义实体的所有必填字段。