[Drupal]リビジョン周りのチートシート


※随時更新予定

NIDから最新のリビジョンIDを取得する

$vid = \Drupal::entityTypeManager()
  ->getStorage('node')
  ->getLatestRevisionId($nid);

リビジョンIDからリビジョンをロードする

$node = \Drupal::entityTypeManager()
  ->getStorage('node')
  ->loadRevision($vid);

ノード保存時に新しいリビジョンを作成する

$node->setNewRevision(TRUE)にした場合、リビジョンユーザーと更新日時、リビジョンログメッセージ等のプロパティの値を明示的に値をセットしないと前のリビジョンの値が使われるので注意.

$node->setNewRevision(TRUE);
$node->setRevisionUser($user);
$node->setChangedTime($timestamp);
$node->setRevisionLogMessage($message);
$node->save();

最新リビジョンかどうかをチェックする

// 最新リビジョンの場合はTRUE.
$node->isLatestRevision();

デフォルトリビジョンかどうかをチェックする

$node->isDefaultRevision();