How to handle enums in Laravel database
Before you start this tutorial, I would like to introduce two packages for Laravel that I have recently developed: Laravel Pay Pocket, a modern multi-wallet package, and Laravel Failed Jobs, a UI for the Laravel Failed Jobs Table. I hope they may be of help to you.
https://github.com/HPWebdeveloper/laravel-pay-pocket
https://github.com/HPWebdeveloper/laravel-failed-jobs
Suppose there are two models Patient and also Exam and the relationship between them is One To Many, I mean each patient can have many exams.
Each exam individually has some features, For example radiologists want to add the following information for each exam: Diagnosis (Pnemonia, Tuberculosis, Normal), Degree of severity (Severe, Moderate, Mild, Absent) and Level of normality of the exam (Typical or Atypical). The question is that what would the final structure of exam table in the database look like?
In the directory config I make a exams.php file which includes the following content that finally returns an array like:
Then in the migration file of table exams we can use enum type and refer to the config file exams.php and the related keys by dot notation like :
config(exams.degree_of_severity)
and the patients table looks like this:
After doing
php artisan migrate:freshThe table exams in the database will have such structure like:
But before using enum I recommend you read this article.
