Shopware 6 создает запись в БД для пользовательского объекта - PullRequest
0 голосов
/ 24 октября 2019

Я пытаюсь создать плагин для Shopware6 по аналогии с BundleExample & Storefinder и застрял при создании соответствующих записей для моих сущностей. Я добавил модуль для администратора, который имеет 3 компонента: список, детали и создание, перенаправленные на [имя-поставщика]. [Имя-плагина] .list / .detail / .create соответственно.

Из пользовательских \ плагинов[имя-плагина] \ 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'
            }
        }

/ список отображается, как и ожидалось, если в списке нет записейБД, то есть видна только смартбар. / detail не может работать, потому что нет идентификатора, поскольку еще нет сущностей. / create должен сгенерировать экземпляр через

created(){
   this.repository = this.repositoryFactory.create('[vendor-name]_[plugin-name]');
   this.repository.create(this.context);
}

, но ничего не происходит.

Я уверен, что где-то пропускаю основной шаг и буду благодарен за любые указания относительно того, как я могу получитьэто на самом деле генерировать запись. Если для уточнения вопроса будет полезен дополнительный код, я с радостью предоставлю его.

1 Ответ

1 голос
/ 24 октября 2019

Строка this.repository.create(this.context); создаст объект-сущность вашего пользовательского объекта на стороне клиента. Чтобы сохранить эту сущность, вы должны позвонить this.repository.save(entity, this.context);. Тогда вы сможете увидеть отправку запроса на сервер в консоли разработчика браузера.

Для получения дополнительной информации, пожалуйста, посмотрите в документы .

Имейте в виду, что this.repository.create(this.context); создает пустую фиктивную сущность, поэтому вам по крайней мере необходимо установить все обязательные поля вашей настраиваемой сущности.

...