是否可以动态设置口才关系模型?

时间:2018-12-17 13:10:48

标签: laravel eloquent laravel-5.7

我有2个用户角色。在数据库中,我有两个角色(model_profilesclient_profiles)的个人资料表。有没有办法动态设置相关的Profile模型?我已经尝试过:

//User model:    
public function profile(){   
  return $this->role == 'model' ? $this->hasOne('App\Models\Model\Profile') : $this->hasOne('App\Models\Client\Profile');
}

但是在这种情况下,我不能使用诸如User::with('profile')->whereIn('id', [1,2,3])->get();之类的口才方法,因为在加载用户模型之前,$this->rolenull

有什么方法可以使用基于用户角色的Profile模型,并且不会丢失任何雄辩的查询方法吗?

1 个答案:

答案 0 :(得分:1)

您可以使用多态关系(More Information