Laravel:如何通过父母的父母获取元素列表

时间:2018-04-11 07:56:09

标签: laravel laravel-eloquent

我有3层模型关系 祖父母班级

class GrandParent extends Model
    {
        protected $guarded = [];


        public function parents()
        {
         return $this->hasMany('App\Parent');
        } 
        public function childs()
        {
            return $this->hasManyThrough('App\Childs', 'App\Parent');
        }
     }

父类

class Parent extends Model
    {

         public function grandParent() {
          return $this->belongsTo('App\GrandParent', 'grandParent_id', 'id');
         }
         public function child()
         {
          return $this->hasMany('App\Child');
         } 
    }

儿童班

class Child extends Model
{

    public function parent() {
        return $this->belongsTo('App\Parent', 'parent_id', 'id');
       }
}

我希望通过grandParent ID获取Child列表

有任何方法可以通过简单的查询获取列表 我正在使用laravel 5.5 感谢。

1 个答案:

答案 0 :(得分:0)

您需要添加来自user_table的grandparent_id和user_id,如下所示。

public function childs()
{
   return $this->hasManyThrough('App\Childs', 'App\Parent','grandparent_id','parent_id','id','id');
}

在您的Controller文件中。

$data = Grandparent::find($grandparent_id)->childs;