一切都需要捆绑吗?


11

我正在学习Entity API。我有一个简单的额外表,希望对其进行“删除”,以便可以在Views中使用它。

我已经阅读了很多,看了一些视频,看了很多例子。我坚持捆绑的概念。我了解什么是捆绑包(例如,节点类型是节点实体的捆绑包)。

但是对于我来说,将永远只有一捆。在示例中,我已经看到捆绑包存储在数据库表中。这对我来说不是必需的,因为针对每个记录存储的值将是相同的。所以我想我可以以某种方式跳过此步骤,或者让我的实体始终返回捆绑的标准字符串。

我误会了吗?捆绑软件是否总是必须在数据库表级别实现并实现?

Answers:


9

是的,捆绑对于实体始终是必不可少的。

如果您未定义自己的捆绑包,则实体系统将为您分配一个与实体类型同名的默认捆绑包,并且将使用该捆绑包。

如果您只有一个捆绑软件,并且只打算拥有一个捆绑软件,那么您就不需要在实体表中为其指定特定字段。正如您在问题中所建议的那样,它将始终是相同的,因此将是多余的,并且只会向数据库查询添加额外的开销(但是很小)。

但是,如果您认为您可能需要在实体的不同子类型之间进行区分,那么从一开始就应该进行构建;这实际上取决于您的用例。


虽然,如果实体必须具有捆绑包,捆绑包本身如何才能成为实体(?!)
artfulrobot 2012年

1
我敢肯定,这只是在谈论将CRUD功能抽象为通用实体类型的想法,然后在整个系统中重复使用它,以便所有对象(实体,捆绑,字段等)都可以利用而无需实现自己的对象。对于Drupal实体(节点,用户等)而言,捆绑是完全不同的事情。如果捆绑包确实是Drupal实体,那么它本身也可以具有捆绑包,这没有任何意义:)
克莱夫(Clive)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.