Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/477.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript spine.js多对多关系?_Javascript_Many To Many_Spine.js - Fatal编程技术网

Javascript spine.js多对多关系?

Javascript spine.js多对多关系?,javascript,many-to-many,spine.js,Javascript,Many To Many,Spine.js,我试图弄清楚spine.js是否支持模型之间的多对多关系,或者我是否通过将相关模型id存储在两侧的数组中来更好地实现某些东西 文档中的示例只显示了一对多情况下非常简单的示例,即使在这种情况下,我也没有变得更聪明,对我来说,脊椎关系的实现似乎非常有限。例如,我仍然不知道如何将现有实例添加到关系中,而不是创建新实例 我需要做的最简单的例子就是创建一个带有标签的典型博客。每个帖子都可以有很多标签,每个标签都可以有很多相关帖子。创建帖子时,我希望向帖子添加新的和/或现有的标签。我需要能够获得与特定标签相

我试图弄清楚spine.js是否支持模型之间的多对多关系,或者我是否通过将相关模型id存储在两侧的数组中来更好地实现某些东西

文档中的示例只显示了一对多情况下非常简单的示例,即使在这种情况下,我也没有变得更聪明,对我来说,脊椎关系的实现似乎非常有限。例如,我仍然不知道如何将现有实例添加到关系中,而不是创建新实例

我需要做的最简单的例子就是创建一个带有标签的典型博客。每个帖子都可以有很多标签,每个标签都可以有很多相关帖子。创建帖子时,我希望向帖子添加新的和/或现有的标签。我需要能够获得与特定标签相关的所有帖子


有没有人能让我走上正确的道路?

我恐怕无法帮助您处理多对多关系,因为我目前正试图解决相同的问题,但对于现有实例,只要是一对多,您可以在hasMany、hasOne和belongsTo函数中添加外键作为可选参数(默认为“{className}\u id”)。这些示例有点误导,因为它们暗示您必须显式地向集合添加项,但实际上,关系是由外键定义的

class Parent extends Spine.Model
  @configure 'Parent', 'id'
  @hasMany 'children', 'Child', 'parent_id'

class Child extends Spine.Model
  @configure 'Child', 'id', 'parent_id'
  @belongsTo 'parent', 'Parent', 'parent_id'

parent = new Parent 
child1 = new Child(parent_id: parent.id)
child2 = new Child(parent_id: parent.id)

@log parent.children().all() #[child1, child2]
@log child1.parent() is child2.parent() #true
就我所见,
newchild(parent\u id:parent.id)
parent.children().create()
相当于一回事,但我对SpineJS非常陌生,所以很容易出错


我认为已经有一些关于多对多关系的请求,但Alex MacCaw到目前为止拒绝了这些请求(我相信他不喜欢一般的关系概念,正在考虑将它们从spine中删除)

将您的xxx\u yyy\u发货模型镜像到spine。模型

xxx.coffee include hasMany xxx_yyy_ship
yyy.coffee include hasMany xxx_yyy_ship

xxx::all_yyy -> ship.yyy for ship in @xxx_yyy_ship()
yyy::all_xxx -> ship.xxx for ship in @xxx_yyy_ship()

使用hasMany和一个中间船模型来模拟多对多关系。

问题是spine中的关系实现是一个笑话。它实际上只做文档中所述的事情,一点也不做。完全缺乏真实世界的用例。因此,我结束了编写自己的关系包,它满足了我的需要。这是一个非常有用的链接is:是的……我觉得他开始实施它,然后认为这是个坏主意。我的情况相当简单,所以我现在选择了id数组解决方案,但如果它再次露出丑陋的脑袋,我可能会写一些合适的东西:)