对不起有点新手在这里,但我有三个表用户,个人资料,朋友。他们都有user_id字段,我希望使用Eloquent而不是DB::statement
在一个语句中获取所有字段并进行表连接。
我怎样才能做到这一点?
答案 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