Я боролся с этой проблемой в течение нескольких дней, и я искал везде, но не смог найти логического решения.
Мне нужно несколько типов пользователей в моем проекте (администратор, клиент), потому чтоМне нужна совершенно другая логика для каждого типа.Поэтому я решил использовать метод multi-auth в laravel (который AFAIK является лучшим решением для этих случаев).Поэтому у меня есть несколько пользовательских классов для каждого типа (и несколько таблиц в БД), включая классы Admin
и User
.Классы AdminAuth
и UserAuth
управляют логикой входа в систему и регистрации, а маршруты обрабатываются с помощью промежуточного программного обеспечения.
До сих пор проблем не было.Проблема в том, что мне нужно использовать один пользовательский класс в других классах.Например, рассмотрим логику обмена сообщениями (и есть много подобных случаев использования):
Модель класса сообщений должна иметь:
protected $fillable = [
'from_id', 'to_id', 'content', 'state'
];
public function sender(){
return $this->belongsTo(**User::class**);
}
public function receiver(){
return $this->belongsTo(**User::class**);
}
...
В приведенной выше модели мне нужно указать Пользователь :: класс для отправителей и получателей, которые могут быть как администраторами, так и пользователями.Так как я могу сказать Eloquent использовать обе модели.Это вообще возможно?Если нет, то каково здесь решение?
Я думал об использовании класса более высокого уровня с именем Person, например, для хранения экземпляров объекта Admin или User, но в этом случае ORM не удается получить или сохранитьпользователи из / в соответствующих таблицах автоматически.
Любое предложение с благодарностью.