web-dev-qa-db-ja.com

hook_user_insertが呼び出されていません

カスタムモジュールweekly_digestそして私はそれを作りたいので、それぞれの新しいユーザーは彼らのサブスクリプション設定に関する情報を含むテーブルに追加されます。

私は管理UIを使用してテストするユーザーを追加してきましたが、影響があるかどうかはわかりませんが、なぜそうなるのかわかりません。

いくつかのコンテキストとして、私の.moduleには現在weekly_digest_node_insertそしてそれはうまく働きます。

そして、これは実行されない関数であり、Xdebugがそれをキャッチすることもできません:

function weekly_digest_user_insert(UserInterface $entity) {

  $query = Drupal::database()->insert('weekly_digest_user_preferences');
  $query->fields([
    'uid',
  ])->useDefaults([
    'new_posts',
    'digests',
  ])->values([
    $entity->id(),
  ])->execute();

}

ほとんどの検索結果は「テーマに含めることができません」または「Drupal 7」を返したため、これを理解することができませんでした。

1
Derek C.

誤った引数を使用している可能性があります。 hook_ENTITY_TYPE_insertは一般的なフックであり、「挿入」するエンティティについては考慮されていません(たとえば、ノード、分類法、ユーザーなどが考えられます)。

試してください:

function weekly_digest_user_insert(\Drupal\Core\Entity\EntityInterface $entity) {
  // Do stuff.
}
2
100pic