Silverstripe 数据对象和页面关系

Silverstripe 数据对象和页面关系,silverstripe,Silverstripe,上面的帖子似乎是我应该做的,但我只是需要一些帮助在我的脑海中整理一下 首先,我需要在页面(例如,所有者)和数据对象(汽车)之间创建一个关系。一个车主可以创建许多与该车主链接的汽车。然而,我有另一个页面(车库),可以创建链接到每个车主的汽车。如果车主不想要这些车中的一辆,他们会拒绝。我在想manymanydataobjectmanager会很适合这一点 每个所有者应该只能在CMS中看到与其直接相关的汽车,而不能看到其他人的汽车,因此我使用dataobjectmanager并使用组为页面分配权限 真

上面的帖子似乎是我应该做的,但我只是需要一些帮助在我的脑海中整理一下

首先,我需要在页面(例如,所有者)和数据对象(汽车)之间创建一个关系。一个车主可以创建许多与该车主链接的汽车。然而,我有另一个页面(车库),可以创建链接到每个车主的汽车。如果车主不想要这些车中的一辆,他们会拒绝。我在想manymanydataobjectmanager会很适合这一点

每个所有者应该只能在CMS中看到与其直接相关的汽车,而不能看到其他人的汽车,因此我使用dataobjectmanager并使用组为页面分配权限

真正让人尴尬的是,当一切都设置好后,我需要输出JSON,它将包括车主创建的汽车和他们从车库接受的汽车,而不是他们拒绝的汽车。我想我需要另一个类似于链接表的表,但可能需要一个状态列

澄清一下,我的问题是如何以建设性的方式制造这种混乱?我采取的方法是正确的还是有更好的方法


非常感谢,如果我不清楚,请告诉我。

您使用的是silverstripe 3吗? 您能否澄清哪些操作在后端发生,哪些操作对于前端的用户是可能的

对于您的关系,使用ModelAdmin可能会更好: 它使您有机会管理关系,而无需站点树/页面开销。例如,创建一个Sitetree元素只是为了拥有一个所有者并不是最好的方法——除非您真的需要一个以真实页面表示的所有者。所有者也可以只是一个数据对象

特别是如果您希望最终只输出JSON,那么您可能完全独立于Sitetree/页面。。。然后,您可以编写一个带有路由规则的自定义控制器,该规则只返回您需要的数据:

问候,,
Florian

我用的是2.4.7。我已经解决了一些问题,现在我只有一个具体的问题。是否可以将现有信息拉入dataobjectmanager,因为这样做有困难。我的意思是,我希望管理员看到dataobjectmanager(或其他)中的所有汽车,而用户只看到与它们相关的汽车。嘿,我对dataobjectmanager没有太多经验。您需要它做什么?我已经通过在管理页面中使用manymanydataobjectmanager解决了这个问题。谢谢你的帮助。:)