2016-04-17 11 views
1

循環依存関係に遭遇していると思うのでBookshelf.jsでレジストリプラグインを使用しようとしていますが、それでどこにもいません。Bookshelf.jsレジストリ[エラー:モデル...レジストリプラグインから解決できませんでした。]

私はこのエラーを得ていた前に、私はエラーを取得した

[Error: A valid target model must be defined for the category hasMany relation] 

私はカテゴリーやタグのモデルを持っているが、私は私のCategoryモデルがどのように見えるエラーに

[Error: The model Tag could not be resolved from the registry plugin.] 

を得続けます:

var knex = require('knex')(config.knex); 
var bookshelf = require('bookshelf')(knex); 
bookshelf.plugin('registry'); 

var Category = bookshelf.Model.extend({ 
tableName: 'category', 
tag: function() { 
    return this.hasMany('Tag', 'category_id'); 
} 
}); 
module.exports = bookshelf.model('Category', Category); 

と私のTagモデル

のように見えます
var knex = require('knex')(config.knex); 
var bookshelf = require('bookshelf')(knex); 
bookshelf.plugin('registry') 

var Tag = bookshelf.Model.extend({ 
tableName: 'tag', 
category: function() { 
    return this.belongsTo('Category'); 
}, 
events: function() { 
    return this.belongsToMany(Event, 'event_tag'); 
}, 
}); 
module.exports = bookshelf.model('Tag', Tag); 

どこが間違っているのか分かりません。とてもイライラしています。誰も助けてください???? ????

答えて

1

this.hasManyはテーブル名またはBookshelfオブジェクト名を使用します。 'tag'(テーブル名)またはTag(ブックシェルフオブジェクト名)を使用し、'Tag'(テーブル名ではありません)を使用しません。だから、

この使用:あなたのTagモデルで同じ問題を抱えているだろう

tag: function() { 
    return this.hasMany(Tag, 'category_id'); 
} 

category: function() { 
    return this.belongsTo(Category); // (or 'category') 
}, 

tag: function() { 
    return this.hasMany('tag', 'category_id'); 
} 

それともこれを

関連する問題