Задать вопрос
DJZT
@DJZT
Laravel - code for you

Как правильно организовать наследование моделей в laravel?

Добрый день. Как правильно организовать наследование моделей в таком случае? Имеется модель User. Необходимо что-бы было 2 модели, Student и Teacher наследованные от User. Как мне обращаться потом к текущему пользователю через фасад Auth? Если же я буду вызывать Auth::user() то получу базовую модель?
Или может в базовой модели сделать поле boolean isTeacher, и из полученной модели Auth::user() брать id и искать Teacher::find(Auth::user()->id)?
  • Вопрос задан
  • 736 просмотров
Подписаться 4 Оценить Комментировать
Решение пользователя D' К ответам на вопрос (2)
Denormalization
@Denormalization
Вариантов несколько:
- Реализовать свой Auth класс, который будет возвращать правильную модель через MyAuth::user() (но могут быть подводные камни)
- Реализовать свой UserRepository в котором будет методы auth/login/findByID/etc, и который будет возвращать правильную модель, и работать только через этот класс.
- Сделать 2 разные таблицы, и работать с ними отдельно. При авторизации пробовать авторизировать в каждой из таблиц.
- Сделать 1 таблицу для логина, и 2 дополнительных для остальной информации. Тогда можно логинить по 1 таблице, а затем брать нужную таблицу из relation.
Ответ написан