ORM Сопоставление разных типов пользователейPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 ORM Сопоставление разных типов пользователей

Сообщение Anonymous »

У меня есть приложение с разными типами пользователей. Все типы пользователей имеют общие свойства, такие как имя пользователя, имя и фамилия. Различные типы пользователей:
  • Ребенок
  • Опека
  • Учитель
У учителя есть все свойства пользователя, а также адрес электронной почты и номер телефона. То же самое для ребенка и опекуна, но между этими двумя объектами существует связь «многие ко многим». У дочернего элемента может быть несколько родителей, а у родителя может быть несколько дочерних элементов.
Я разработал свои модели так, чтобы у них был родительский класс User с общими свойствами, и у меня есть класс для каждого типа как подкласс. Идея заключалась в том, что он будет генерировать таблицы базы данных «Пользователи», «Дети», «Защитники» и «Учителя». Где последние три будут иметь FK для пользователей, поэтому, когда я получаю, например, учителя, я также могу получить его имя и фамилию.
Это мои модели:
User.php Child.orm.xml Guardian.orm.xml Teacher.orm.xml При создании миграции на основе этого создаются следующие таблицы:
[
Изображение

Как видите, таблицы содержат правильные поля, а пользователь содержит дискриминатор для определения типа пользователя. Но в таблицах, представляющих разные типы пользователей, чего-то не хватает. Когда бы я нашел учителя в этой базе данных, я бы понятия не имел, что это за пользователь на самом деле, и было бы невозможно получить имя, фамилию... потому что таблица «Учителя» не имеет FK для таблицы «Пользователи».
Я думал, что смогу решить эту проблему, добавив число «многие к одному» в подтаблицы в xml: Но это выдает следующую ошибку:

Код: Выделить всё

 Property App\Domain\Model\User\Teacher::$user does not exist
Это можно решить, добавив свойство $user в класс Teacher. Но Учитель уже выходит за рамки Пользователя, так что мне это кажется не имеющим смысла.
Я думаю, что делаю что-то неправильно, как мне успешно реализовать разные типы пользователей? п>

Подробнее здесь: https://stackoverflow.com/questions/791 ... e-of-users
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»