Как включить отношение к результату удаленного метода в loopback? - PullRequest
0 голосов
/ 22 ноября 2018

У меня есть метод beforeRemote при обновлении атрибута.Я включил отношение в context.args.include, но возвращенный результат не включает это отношение.Вот пример кода

Assessment.beforeRemote('prototype.updateAttributes', function(context, data, next){
    context.args.include = ['images'];

    next();
});

Что я делаю не так?Атрибут «images» не включен в возвращаемый результат.

1 Ответ

0 голосов
/ 23 ноября 2018

Я думаю, это не работает, потому что updateAttributes не использует петлевой фильтр для извлечения обновленных значений, это не обычный запрос "find".

Я бы использовал afterRemote вместо beforeRemote и добавилкод для получения данных:

Assessment.afterRemote('prototype.updateAttributes', function(ctx, modelInstance, next) {
    if (!ctx.result) return next();

    if (Array.isArray(modelInstance)) {
        Assessment.find({
            where: {id: {inq: modelInstance.map(instance => instance.id)}},
            include: ['images']
        }).then(data => {
            // ctx.result is sent to client
            ctx.result = [].concat(data);
            next();
        }).catch(err => {
            // pass error to next
            next(err);
        });
    }else{
        Assessment.findOne({
            where: {id: modelInstance.id)},
            include: ['images']
        }).then(data => {
            // ctx.result is sent to client
            ctx.result = Object.assign({}, data);
            next();
        }).catch(err => {
            // pass error to next
            next(err);
        });
    }
});

Подробности здесь: петлевые 3 удаленных перехвата

...