我正在创建一个Web应用程序的API,并尝试将其保持在Eloquent ORM内。 我有一个父子关系:
用户 -> 站点日志 -> 站点
站点类代码:
class Site extends Model {
public function log() {
return $this->hasMany('App\SiteLog', 'site_id', 'id');
}
}
SiteLog类的代码:
class SiteLog extends Model
{
public function site()
{
return $this->belongsTo('App\Site', 'site_id', 'id');
}
public function user()
{
return $this->belongsTo('App\User', 'user_id', 'id');
}
}
当我使用以下方式实例化SiteLog类时:
$sites = Site::with('log')->get();
当我使用jQuery进行GET请求时,我会得到所有站点的信息,并在其中有一个包含相应日志数据的对象数组。这正是我想要的。然而,我希望更进一步,获取与该日志相关联的用户。
就像这样运作:
SiteLog::with('user')->get();
但是所有的语句都像一个大的连接查询一样。然而,我不确定Eloquent ORM是否覆盖了这样的测试用例。
有人完成过这样的事情吗?我可以使用一些相当hacky的做法或只编写原始的SQL查询来完成此操作,但我只是想知道是否有更优雅的方法。
User
? - Darama