※随時更新予定
NIDから最新のリビジョンIDを取得する
$vid = \Drupal::entityTypeManager()
->getStorage('node')
->getLatestRevisionId($nid);
リビジョンIDからリビジョンをロードする
$node = \Drupal::entityTypeManager()
->getStorage('node')
->loadRevision($vid);
ノード保存時に新しいリビジョンを作成する
$node->setNewRevision(TRUE)
にした場合、リビジョンユーザーと更新日時、リビジョンログメッセージ等のプロパティの値を明示的に値をセットしないと前のリビジョンの値が使われるので注意.
ちなみにContent ModerationとWorkflowsモジュールでワークフローを実装している場合は、デフォルトで$node->setNewRevision(TRUE);
がセットされるので、リビジョンが勝手に増えてもびっくりしないように...
$node->setNewRevision(TRUE);
$node->setRevisionUser($user);
$node->setRevisionCreationTime($timestamp);
$node->setRevisionLogMessage($message);
$node->save();
最新リビジョンかどうかをチェックする
// 最新リビジョンの場合はTRUE.
$node->isLatestRevision();
デフォルトリビジョンかどうかをチェックする
$node->isDefaultRevision();