У меня 2 роли пользователя.В базе данных у меня есть собственные таблицы профилей для обеих ролей (model_profiles
и client_profiles
).Есть ли способ динамически установить связанную модель профиля?Я пробовал это:
//User model:
public function profile(){
return $this->role == 'model' ? $this->hasOne('App\Models\Model\Profile') : $this->hasOne('App\Models\Client\Profile');
}
Но в этом случае я не могу использовать некоторые методы Eloquent, такие как User::with('profile')->whereIn('id', [1,2,3])->get();
, потому что $this->role
равен null
, пока не будет загружена пользовательская модель.
Есть ли способ использовать модель профиля, основанную на роли пользователя, и не потерять какие-либо методы запросов Eloquent?