Laravel使用eloquent查询多个表

时间:2015-06-24 20:50:17

标签: laravel eloquent

对不起有点新手在这里,但我有三个表用户,个人资料,朋友。他们都有user_id字段,我希望使用Eloquent而不是DB::statement在一个语句中获取所有字段并进行表连接。

我怎样才能做到这一点?

2 个答案:

答案 0 :(得分:15)

试试这个

使用User类和laravel查询模型关系的with方法

$user = User::with(['profile', 'friend'])->get();

确保您的模型具有如下正确的关系:

app/models/User.php

public function friend () {
    return $this->hasMany('friend');
}

public function profile () {
    return $this->hasOne('profile');
}

app/models/Profile.php

  public function user() {
        return $this->belongsTo('User');

    }

app/models/Friend.php

public function user() {
    return $this->belongsTo('user');
}

答案 1 :(得分:0)

使用类似这样的东西: 您应该在模型中使用hasOne,hasMany定义关系。

class Review extends Eloquent {
    public function relatedGallery()
    {
        $this->hasOne('Gallery', 'foreign_id', 'local_id');
    }
}

class Gallery extends Eloquent {
    public function relatedReviews()
    {
        $this->hasMany('Review', 'foreign_id', 'local_id');
    }
}

$gallery = Gallery::with('relatedReviews')->find($id);
Will bring the object Gallery with

$gallery->id
gallery->name
...

$gallery->relatedReviews // array containing the related Review Objects