繁体   English   中英

laravel-三对多关系

[英]laravel - 3 steps relation by many to many

我有3个表格:用户,教师和帖子。

用户
id-整数
名称-字符串

老师
id-整数
Teacher_id-整数
user_id-整数
名称-字符串

帖子
id-整数
user_id-整数
标题-字符串


用户模型:

class User extends Model
{
  public function teachers()
  {
    return $this->hasMany('App\Teacher');
  }
}


教师模式:

class Teacher extends Model
{
  public function posts()
  {
    return $this->hasMany('App\Post', 'user_id','teacher_id');
  }
}


问题是我该如何使用……

$user = User::find(1);
$teacher_posts = $user->teachers()->posts

我是laravel的新手,但这是我的看法。

我已经意识到,通常您的多对多关系将需要一个透视表。

用户 :(id,名称)

教师 :(id,teacher_id,姓名)

教师用户 :(id,user_id,teacher_id)

帖子 :(id,user_id,title)

而且您的口才模型将如下所示。

class User extends Model
{
  public function teachers()
  {
    return $this->belongsToMany('App\Teacher');
  }

  public function posts()
  {
    return $this->hasMany('App\Post');
  }
}


class Teacher extends Model
{
  public function users()
  {
    return $this->belongsToMany('App\User');
  }
}

$user = User::find(1);
$user_posts = $user->posts();

在此处查看文档以获取更多详细信息

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM