วิธีที่ง่ายที่สุดในการทำเช่นนี้คือผ่านปลั๊กอินประเภทเวิร์กโฟลว์ โดยเฉพาะ getTransitions() กระบวนการ.
// ก่อนอื่นให้โหลดเวิร์กโฟลว์ ตัวอย่างเช่น:
$เวิร์กโฟลว์ = \Drupal::service('content_moderation.moderation_information')
->getWorkflowForEntity($เอนทิตี);
// จากนั้นรับปลั๊กอินประเภทเวิร์กโฟลว์
/** @var \Drupal\workflows\WorkflowTypeInterface $workflow_type_plugin */
$workflow_type_plugin = $เวิร์กโฟลว์->getTypePlugin();
// สุดท้ายโหลดการเปลี่ยน
$workflow_transitions = $workflow_type_plugin->getTransitions();
อีกทางหนึ่ง อาจมีประโยชน์มากกว่าที่จะได้รับเฉพาะการเปลี่ยนที่ถูกต้องสำหรับเอนทิตี เช่น อนุญาตให้เปลี่ยนเฉพาะสำหรับเอนทิตีจากสถานะปัจจุบัน สำหรับผู้ใช้ปัจจุบัน เดอะ getValidTransitions() วิธีการจาก content_moderation.state_transition_validation บริการนี้
/** @var \Drupal\content_moderation\StateTransitionValidationInterface $transition_validation */
$transition_validation = \Drupal::service('content_moderation.state_transition_validation');
$valid_transitions = $transition_validation
->getValidTransitions($entity, \Drupal::currentUser());