В моем проекте Laravel у меня есть разные типы пользователей, у всех из которых есть базовая модель User. Вот краткое представление о топологии базы данных:
users:
- id
- name
- email
students:
- age
- user_id
teachers:
- budget
- user_id
employee:
- is_admin
- user_id
В моем случае каждый из Student
, Teacher
, Employee
имеет свой собственный User
. Но если я хочу сделать новую Student
, например, я должен сделать модель Student
и User
. Мне известен шаблон Observers в Laravel, который может упростить эту работу, но я хотел бы иметь возможность программно создавать Student
модели, подобные следующим:
$student = App\Student::create(['name' => 'Joe', 'email' => 'joe@example.net', 'age' => '20']);
Проблема становится оттуда еще сложнее, потому что модели Teacher
также должны иметь модель Employee
и модель User
. Есть ли способ переопределить метод create
в моей модели, чтобы я мог передать User
параметры создания, а также Student
параметры?