Можно ли динамически установить модель для красноречивых отношений? - PullRequest
0 голосов
/ 17 декабря 2018

У меня 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?

1 Ответ

0 голосов
/ 17 декабря 2018

Вы можете использовать полиморфные отношения ( Подробнее )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...