Bookshelf.js - como obter uma coluna da tabela de junção?

Kaustubhb

Eu tenho um modelo de usuário e um modelo de curso, e eles têm um relacionamento muitos para muitos, portanto, basicamente, os usuários podem ingressar em vários cursos e os cursos têm muitos usuários (alunos). Eu tenho uma tabela de associação e estou tentando adicionar informações adicionais à tabela de associação. Basicamente, os usuários têm uma cota mensal de perguntas que podem fazer por curso. Portanto, adicionei uma coluna de cota à tabela de junção User_Course. Estou tendo problemas para acessar a coluna de cota. Abaixo está o código relevante para se ter uma ideia.

var User = DB.Model.extend({
    Courses: function() {
        return this.belongsToMany('Course', 'User_Course', 'userId', 'courseId');
    },
});

var Course = DB.Model.extend({
    Users: function() {
        return this.belongsToMany('User', 'User_Course', 'courseId', 'userId');
    }
})

E User_Course é minha tabela de junção que tem a coluna de cota adicional:

**User_Course:**
userId: int
courseId: int
quota: int

Eu quero ser capaz de diminuir meu valor de cota. Consigo atualizá-lo usando updatePivot, mas não consigo simplesmente obter o valor que está na cota. Aqui está o código que estou usando para atualizar o valor:

var userPromise = new User.User({userId: userId}).fetch({withRelated: ['Courses']});
userPromise.then(function(_user) {
    _user.related('enrolledCourses').updatePivot({courseId:courseId, quota:1}).then(function() {
        return;
    })

})

Como você pode ver, estou atualizando o valor da cota para 1 toda vez aqui. Gostaria de determinar programaticamente qual é o valor da cota atual e diminuí-lo.

código feio

Experimente withPivot. Por exemplo, return this.belongsToMany(Comment).withPivot(['created_at', 'order']);você pode colocar aqui sua cota e a receberá ao carregar a relação.

Atualizar:

OK, aqui está um exemplo:

    new Town().where({
            town_number: 2301
        }).fetchAll({
            columns: ['town_title', 'id'],
            withRelated: [{
                'address': function(qb) {
                    qb.select('addresses.town_id', 'addresses.participant_id');
                    qb.columns('addresses.street_name');
                    // here you could simply do qb.where({something_id: 1}); as well
                }
            }]
        }).then(function(result) {
            res.json(result);
        });

Então, basicamente, em vez de apenas dizer withRelated: ['table_name'], você define o nome da tabela como um objeto, com a propriedade table_namee functioncomo um valor, que tem um construtor de consulta ( qb) e você pode consultar essa tabela separadamente.

Espero que isto ajude!

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Como obter o mysqldump de uma tabela filtrando essa tabela com junção de outro valor de coluna da tabela?

Como obter o nome da tabela de uma coluna em uma consulta de junção com SQL Server e FIREDAC?

Como implementar uma junção para obter a contagem de todos os registros na 2ª tabela antes de uma data especificada em uma coluna da 1ª tabela

Como mostrar SOMENTE o valor máximo de uma coluna da tabela de junção interna?

Como obter o índice da coluna de uma célula da tabela

Como obter o nome da coluna da tabela de dados?

Como obter todas as linhas da tabela MySQL onde o valor de uma coluna é o mesmo?

Como obter todas as linhas da tabela MySQL onde o valor de uma coluna é o mesmo?

Como obter uma coluna da junção de 2 tabelas SQL

como obter o nome da coluna de uma tabela com base no elemento clicado usando Jquery / DataTables

Como obter um valor que não seja nulo em uma coluna da tabela de dados

obter o total de uma coluna da tabela carregada dinamicamente

Como obter todos os registros de uma tabela entre as datas da coluna em outra tabela

Como obter todas as linhas de uma tabela SQL antes de uma mudança na string da coluna?

Como obter uma linha de uma coluna da tabela de pesquisa contém qualquer

Como obter o nome da coluna da partição da tabela de partição no servidor Oracle

Como obter o nome da coluna da partição da tabela de partição no servidor Oracle

Como obter o valor da coluna correspondente de uma tabela com base nos valores máximos entre as colunas em SQL

Como obter o nome da coluna de uma consulta?

Como obter uma coluna da primeira tabela em UNION no postgresql?

Como obter dados da tabela em uma coluna db de outro banco de dados

Como obter o valor mais bem classificado da coluna mais à direita em uma junção

O SQL é como obter um valor de uma coluna da tabela de um intervalo de data e hora de outra tabela?

Como obter a chave primária "nome da coluna" de uma tabela específica no MySQL

Na classe Room db Dao - como obter valores da tabela comparando valores distintos de uma coluna?

Na classe Room db Dao - como obter valores da tabela comparando valores distintos de uma coluna?

SQL JOIN: Como ecoar valores de uma coluna da tabela A com o mesmo nome de uma coluna da tabela B?

Como obter o intervalo da coluna "Soma total" em uma tabela dinâmica? Excel VBA

Como obter tabela como matriz de matrizes onde cada submatriz é uma coluna (não uma linha)

TOP lista

  1. 1

    R Shiny: use HTML em funções (como textInput, checkboxGroupInput)

  2. 2

    UITextView não está exibindo texto longo

  3. 3

    Dependência circular de diálogo personalizado

  4. 4

    Acessando relatório de campanhas na AdMob usando a API do Adsense

  5. 5

    Como assinar digitalmente um documento PDF com assinatura e texto visíveis usando Java

  6. 6

    R Folheto. Dados de pontos de grupo em células para resumir muitos pontos de dados

  7. 7

    Setas rotuladas horizontais apontando para uma linha vertical

  8. 8

    O Chromium e o Firefox exibem as cores de maneira diferente e não sei qual deles está fazendo certo

  9. 9

    Definir um clipe em uma trama nascida no mar

  10. 10

    Por que meus intervalos de confiança de 95% da minha regressão multivariada estão sendo plotados como uma linha de loess?

  11. 11

    Como dinamizar um Dataframe do pandas em Python?

  12. 12

    regex para destacar novos caracteres de linha no início e no fim

  13. 13

    Why isn't my C# .Net Core Rest API route finding my method?

  14. 14

    Como obter a entrada de trás de diálogo em treeview pyqt5 python 3

  15. 15

    Tabela CSS: barra de rolagem para a primeira coluna e largura automática para a coluna restante

  16. 16

    How to create dynamic navigation menu select from database using Codeigniter?

  17. 17

    Como recuperar parâmetros de entrada usando C #?

  18. 18

    Changing long, lat values of Polygon coordinates in python

  19. 19

    Livros sobre criptografia do muito básico ao muito avançado

  20. 20

    Método \ "POST \" não permitido no framework Django rest com ações extras & ModelViewset

  21. 21

    Pesquisa classificada, conte números abaixo do valor desejado

quentelabel

Arquivo