使用Laravel和Eloquent获取相关对象

时间:2013-11-25 17:34:55

标签: php laravel laravel-4

我在Laravel中创建了一些扩展Eloquent类的模型。在这些模型中,我添加了关系,如下例所示:

//in the User class
public function group()
{
    return $this->belongsTo('Group');
}

通过这种方式,我能够以这种简单的方式检索特定用户的组对象:

User::find(1)->group

这很好。我需要获取整个表并以json格式显示它,所以我做

User::all()->toJson()

我获取整个表,但是我有“group_id”列而不是组对象。有没有一种简单的方法在JSON中包含相关对象?我知道我可以在集合中循环并手动添加对象,但我认为这应该是不好的练习,因为我需要做很多查询,当这个问题可以使用带有连接的单个查询来解决。有什么想法吗?

2 个答案:

答案 0 :(得分:8)

我认为急切加载是您正在寻找的:http://laravel.com/docs/eloquent#eager-loading

User::with('group')->get()->toJson()

修改:从get()

修复对all()的来电

答案 1 :(得分:0)

Soved!

User::with('group')->get()->toJson()