Laravel雄辩的数据关系问题

时间:2018-11-23 16:52:42

标签: laravel eloquent

我有两个表: 学生表:

columns: id | family_id | name | class | section

家庭表:

columns:  id | f_name | f_profession

我想要的东西:如果学生表中有任何学生,我想获取每个学生的兄弟姐妹列表。我想在每个学生档案中显示兄弟/姐妹的名单。

我尝试过的做法:我能够获得所有学生的名单,当我单击学生姓名时,它会打开学生个人资料,但不会显示该学生的兄弟姐妹。

我的控制器:

public function show($id){
$showdata = Student::find($id);
return View('students.profile' ,compact('showdata');}

我的学生模型:

class student extends Model
    {
     public function family() {
      return $this->belongsTo(family::class,'family_id'); }

    public function getSiblings() {
        return $this->family->students;
    }}

我的个人资料视图:

Brother Sisters :{{$showdata->getSiblings()}}

1 个答案:

答案 0 :(得分:1)

您需要一种“有很多通过”的关系。

public function studentSiblings() {
     return $this->hasManyThrough('App\Sibling', 'App\Family);
    }

可以找到更多信息:https://laravel.com/docs/5.7/eloquent-relationships#has-many-through