0
1

はじめに

以前、こちらの記事内でMBTIデータをTaxonomyTermで登録するスクリプトについて触れました。

16個もGUIで作ってられないですよね。
その時に使用したMBTIデータ登録スクリプトを紹介します。

サンプルデータ

以下のフォーマットの配列を用意します。

$data = [
  ['name' => 'ISTJ','vid' => 'mbti'],
  ['name' => 'ISFJ','vid' => 'mbti'],
  ['name' => 'INFJ','vid' => 'mbti'],
  ['name' => 'INTJ','vid' => 'mbti'],
  ['name' => 'ISTP','vid' => 'mbti'],
  ['name' => 'ISFP','vid' => 'mbti'],
  ['name' => 'INFP','vid' => 'mbti'],
  ['name' => 'INTP','vid' => 'mbti'],
  ['name' => 'ESTP','vid' => 'mbti'],
  ['name' => 'ESFP','vid' => 'mbti'],
  ['name' => 'ENFP','vid' => 'mbti'],
  ['name' => 'ENTP','vid' => 'mbti'],
  ['name' => 'ESTJ','vid' => 'mbti'],
  ['name' => 'ESFJ','vid' => 'mbti'],
  ['name' => 'ENFJ','vid' => 'mbti'],
  ['name' => 'ENTJ','vid' => 'mbti'],
];

スクリプト

/** @var \Drupal\taxonomy\TermStorageInterface $storage  */
$storage = \Drupal::entityTypeManager()->getStorage('taxonomy_term');

foreach ($data as $item) {
  try {
    $entity = $storage->create($item);
    $entity->save();
    echo 'Term作成成功. ID:' . $entity->id() . ".\r\n";
  }
  catch (EntityStorageException $e) {
    echo $e->getMessage();
  }
}

TermStorageが用意しているCreateメソッドを使用します。

実行

Drush に搭載されているスクリプト実行コマンドを利用しましょう。

drush php:script <ファイル名>

まとめ

サンプルデータを作成する時に、覚えておくと役立ちそうですね。

16個であればデータの作成を手動ですることもあるかもしれませんが、この程度でのスクリプトであれば時間もかからないし使いまわせそうなので実装してもいいかもですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1