在laravel中加入表

时间:2018-07-04 14:08:20

标签: laravel-5 eloquent

我在laravel中有3张桌子:

class General extends Mode
{
 public function populars()
    {
        return this->hasMany('App\Popular');
    }
}

enter code here

class Popular extends Model
{
    public function general()
    {
        return  this->belongsTo('App\General');
    }
}

class Specific extends Model
{
public function popular(){
        return this->belongsTo('App\Popular');
    }
}
...

如何联接表并返回此列表结果:

 1. generals
     2.popular
      3.Specific

1 个答案:

答案 0 :(得分:2)

我假设Popular有很多Specific,您可以在Popular模型中添加另一个映射为

class Popular extends Model
{
    public function general()
    {
        return  this->belongsTo('App\General');
    }
    public function specific()
    {
        return this->hasMany('App\Specific');
    }

}

雄辩地将其写为

$generals = General::with('populars.specific')->get();

使用查询生成器,您可以将其加入为

DB::table('general as g')
    ->join('popular as p', 'g.id','=','p.general_id')
    ->join('specific as s', 'p.id','=','p.popular_id')
    ->get();