2016-11-28 1 views
2

belongsToMany 관계 (Bookshelf)를 사용하여 게시물과 태그 간의 관계를 설정하려고했습니다.Bookshelf (knex) - belongsToMany 관계가 작동하지 않습니다.

db.js

const Post = bookshelf.Model.extend({ 
    tableName: 'posts', 
    hasTimestamps: true, 
    tags: function(){ 
     return this.belongsToMany(Tag) 
    } 
}) 

const Tag = bookshelf.Model.extend({ 
    tableName: 'tags', 
    posts: function(){ 
     return this.belongsToMany(Post) 
    } 
}) 

// Pivot table 
const PostTag = bookshelf.Model.extend({ 
    tableName: 'posts_tags', 
    post: function(){ 
     return this.belongsTo(Post) 
    }, 
    tag: function(){ 
     return this.belongsTo(Tag) 
    } 

}) 

가져 오기 경로입니다 : : 이미 데이터베이스에 테이블 'posts_tags'을 추가 한

.get('/:id', (req, res, next) => { 
     db 
      .Post 
      .where('id', req.params.id) 
      .fetch({widthRelated: ['tags'], require:true}) 
      .then((data)=> { 
       return res.json({data, ralation: data.related('tags').toJSON()}) 
      }) 
    }) 

모든 데이터베이스가 포함 씨앗을 품고 여기 내 코드입니다 이 피벗 테이블. 따라서 경로를 통해 쿼리 할 때 관계 쿼리가 시작되지 않습니다. knex 디버그 : sql : 'posts을 선택하십시오. * posts에서 id =? 한계? '

테이블

게시물 - ID 이름 created_at


posts_tags updated_at - - ID post_id를 tag_id created_at

updated_at ID 제목 텍스트 created_at


태그 updated_at

코드에 실수가 있습니까? 이 게시물에 대한

답변

0

죄송합니다 - 난 그냥 오타가 있었다 :

.fetch({widthRelated: ['tags'], require:true}) 

widthRelated = withRelated !!!!!!

관련 문제