drupal以编程方式创建实体

时间:2016-09-01 14:53:49

标签: php drupal

我使用无头drupal为我的前端应用程序公开api,我对Drupal中实体的创建和更新过程有疑问。 如果我能够以编程方式创建我的实体和我的包,就像编写php脚本并运行它一样,这可能很有用。也许还有其他可以改变我的sql方案并引入字段。

我实际上和drupal很相似(我习惯了django和迁移文件,完全像那样)。而且我想知道有一个与drupal(7或8 ^^)的等价物。

2 个答案:

答案 0 :(得分:1)

您可以使用Entity API在Drupal中完成此操作。我只是在D7中涉足这个问题,但它完全符合你的要求。当然,它都是在钩子中使用Drupal模块完成的,而不仅仅是一个独立的PHP脚本。

使用hook_schema创建表,然后使用hook_update_N处理模式迁移(其中N是您选择的任何数字)。使用hook_entity_info定义实体然后您需要控制器来管理实体,字段和字段实例,告诉Drupal您的实体如何关联以及有关显示的一些信息。

第一次运行时,这是一个相当复杂的过程。我知道在这里链接到外部资源是不好的形式,但这个主题相当密集。当我在工作中为项目创建概念证明时,我发现http://www.zyxware.com/articles/4779/drupal-how-to-create-custom-entity-programatically-in-drupal-7是一个非常有价值的资源。

祝你好运,让我知道它是怎么回事。

答案 1 :(得分:0)

如果您使用的是Drupal 8,Drupal Console会对您有所帮助。有一个generating entities命令,控制器,表单和许多其他东西。

对于Drupal 7,Entity Construction Kit是最佳选择

我已经成功地使用了这两种工具。

有许多样板代码要写,因为你可能已经从Quint的建议中注意到了。