在模块内以编程方式在 Drupal 9 上创建示例内容的最佳技术

Posted

技术标签:

【中文标题】在模块内以编程方式在 Drupal 9 上创建示例内容的最佳技术【英文标题】:Best technique for creating sample content on Drupal 9 programatically within module 【发布时间】:2021-12-13 17:37:40 【问题描述】:

我创建了一个带有新内容类型和字段的 drupal 9 自定义模块。我想在安装模块时创建一个示例节点。

以编程方式创建示例节点的最佳方法是什么?

我研究了使用 migrate 和 migrate_tools 以及构建 YAML 文件。这是有希望的,但在当前版本的 drush 10.6 和 migrate 5 中存在问题。看起来 dev 中有修复,但我想知道其他人都在做什么。我的偏好是不依赖于模块,除非有令人信服的理由(例如易于维护测试用例或样本数据) 谢谢

【问题讨论】:

你应该把这个发布到 drupal.stackexchange.com 我过去使用default content module 取得了成功 【参考方案1】:

你必须使用钩子:

    安装模块时,使用这个钩子hook_install 更新模块时,使用这个钩子hook_update_N

在钩子中,你必须实现正确的逻辑:

$node = Node::create([
    'type'        => 'article',
    'title'       => 'Druplicon test',
    'field_image' => [
      'target_id' => $file->id(),
      'alt' => 'Hello world',
      'title' => 'Goodbye world'
    ],
]);
$node->save();

【讨论】:

以上是关于在模块内以编程方式在 Drupal 9 上创建示例内容的最佳技术的主要内容,如果未能解决你的问题,请参考以下文章

drupal 以编程方式禁用或删除节点创建节点链接

无法以编程方式在视图 Drupal 7 中为日期设置公开过滤器

php 在drupal 8中以编程方式创建词汇和术语: - Drupal

Drupal Group 模块,以编程方式将用户添加到具有特定角色的组

WKWebview & UIImageView 在 UIScrollView 内以编程方式自动布局 Objective-C

React Router 4 如何在函数内以编程方式重定向? [复制]