Strapi beta - обновление других таблиц с другого контроллера

У меня есть 2 типа контента: «продукты и запасы», «наличие» необходимо обновить при обновлении «продуктов». Пытаюсь обновить "сток" из контроллера "продукты".

В настоящее время я следую инструкциям в разделе - https://strapi.io/documentation/3.0.0-beta.x/concepts/controllers.html#core-controllers

При попытке обновить "сток" возникает ошибка:

error TypeError: Cannot read property 'update' of undefined

Это мой код:

const { sanitizeEntity } = require('strapi-utils');
const stock             = require('../../stock/controllers/Stock');

module.exports = {
    async update(ctx) {

      let test = await stock.update(ctx.params, ctx.request.body);

      let entity;
      entity = await strapi.services.products.update(
         ctx.params,
         ctx.request.body
      )
    },
}

Я также пробовал следующее из своего контроллера продукта, что привело к той же ошибке:

let stock = await strapi.services.stocks.update(
         ctx.params,
         ctx.request.body
      )

Любые идеи?


person Rodrigo Rubio    schedule 10.01.2020    source источник
comment
Привет! Чтобы точно ответить на ваш вопрос, можете ли вы подробно описать, что вы пытаетесь сделать.   -  person Jim LAURIE    schedule 13.01.2020
comment
По сути, при обновлении продукта мне нужно запустить бизнес-логику, которая влияет на другие типы контента (таблица). Я хотел бы, чтобы моя бизнес-логика выполняла ряд различных действий, включая создание, обновление и удаление данных из других типов контента (таблиц).   -  person Rodrigo Rubio    schedule 16.01.2020


Ответы (1)


Я предлагаю вам запустить services вместо controllers.

Потому что в написанном вами коде вы не передаете правильные параметры.

И controller функции должны вызываться маршрутом, а не другим контроллером.

person Jim LAURIE    schedule 18.01.2020
comment
Спасибо, мужик. Для моей справки и других, я полагаю, вы имеете в виду следующее? strapi.io/documentation/3.0.0-beta. х / концепты / - person Rodrigo Rubio; 19.01.2020
comment
Ага! с strapi.api.stock.services.stock.update(ctx.params, ctx.request.body) - person Jim LAURIE; 23.01.2020