【发布时间】:2014-11-06 08:57:47
【问题描述】:
我有一个用户和注释模型以及一个用于存储用户喜欢的注释的数据透视表 user_like。注释表还通过 hasMany 关系与另一个模型(范围)关联。我正在尝试返回所有注释及其用户、范围和喜欢的总数。
下面的代码适用于用户、范围甚至喜欢。但是,我只对返回喜欢的计数感兴趣,而不是实际值(即喜欢注释的用户列表)。有没有办法只包括关系中一个模型的计数?
雄辩的查询:
$annotations = Annotation::with('ranges')
->with('likes')
->with('author')
->where('document_id', $docid)->get()->toArray();
型号:
class Annotation extends Eloquent {
public function ranges()
{
return $this->hasMany('Range');
}
public function author()
{
return $this->belongsTo('User', 'user_id');
}
public function likes()
{
return $this->belongsToMany('User', 'annotation_like');
}
public function countOfLikes()
{
return $this->likes()->count();
}
}
【问题讨论】:
标签: laravel laravel-4 eloquent