Create a Custom Content Entity for Drupal 8, Drupal 9

Last updated April 14, 2021
Module Development8.9.x/9.0.x

The Drupal Entity API makes it easy to define new custom content entity types. And in most cases whenever you want to store custom content in Drupal you should use the Entity API instead of making CRUD queries directly to the database. This ensures your code is more consistent, and allows you to take advantage of all the features of the Entity API like access control, Views module integration, and automatic JSON:API support. As well as making it easier for others to extend your custom content by ensuring all the proper hooks and lifecycle events get invoked when new content items get created, updated, and deleted.

In this tutorial we'll:

  • Walk through the process of creating a custom content entity
  • Look at how Drupal Console can be used to make the process easier

By the end of this lesson you'll be able to create your own custom content entity contained in a module.