我有4个表,它们之间的关系类似于picture。 我在用户模型中也有2个功能:
public function getUserSchools(){
return $this->belongsToMany(Schools::class, 'user_has_schools', 'user_id', 'school_id');
}
public function getUserRoles(){
return $this->belongsToMany(Roles::class, 'user_has_schools', 'user_id', 'role_id');
}
它们工作正常,但是我想合并它们的结果-我需要让此用户的学校和他在每所学校中的角色(例如:[小学,教师],[高中,上司]等在一起。 )。 我怎样才能达到那个结果?也许这是一个琐碎的问题,但是我只是从Laravel开始冒险。 :)
答案 0 :(得分:0)
检查Laravel多态关系 https://laravel.com/docs/5.8/eloquent-relationships#many-to-many-polymorphic-relations
样本:
class Post extends Model
{
/**
* Get all of the tags for the post.
*/
public function tags()
{
return $this->morphToMany('App\Tag', 'taggable');
}
}
不要介意示例方法
class Tag extends Model
{
public function posts()
{
return $this->morphedByMany('App\Post', 'taggable');
}
public function videos()
{
return $this->morphedByMany('App\Video', 'taggable');
}
public function links()
{
return $this->morphedByMany('App\Links', 'taggable');
}
public function forum()
{
return $this->morphedByMany('App\Forums', 'taggable');
}
}