Drupal 8, 9でコンテンツを保存する際に前処理を挟む
Drupal 8, 9でコンテンツを保存をする際に前処理を挟みたい場合は hook_entity_presave
を利用します。
hook_entity_presave | entity.api.php | Drupal 9.0.x | Drupal API
なお、実際にモジュールを開発する際には
{モジュール名}_{前処理をしたいエンティティ名 or entity}_presave
という命名規則になります。
my_module
というモジュールを作っていたとして、全てのエンティティに前処理を挟みたい場合は
my_module_entity_presave
となり、コンテンツ(Nodeエンティティ)だけ前処理を挟みたい場合は
my_module_node_presave
となる。
実装例
<?php
function my_module_node_presave(Drupal\Core\Entity\EntityInterface $entity){
// nodeを保存する前に処理を行う
}
引数に関数名で指定したエンティティが渡ってくるので、後はそれを利用して適宜実装を行うといった具合です。
Category