【发布时间】:2015-09-05 12:44:27
【问题描述】:
我的关联模型如下所示(已编辑无关代码):
class Association extends Model
{
public function members() {
return $this->hasMany('App\Member');
}
}
我的会员模型如下所示:
class Member extends Model
{
public function scopeActive($query) {
return $query->where('membership_ended_at', Null);
}
public function scopeInactive($query) {
return $query->whereNotNull('membership_ended_at');
}
}
这就是我想要做的:
$association = Association::find(49);
$association->members->active()->count();
现在,我知道查询和集合之间存在区别。但我基本上要问的是,是否有某种类似的收藏范围。当然,最佳解决方案是不必编写两个活动方法,而是将一个用于两个目的。
【问题讨论】:
-
$association->members()->active()->count();工作吗? -
哇。我想我被它愚弄了,它允许我这样做
$association->members谢谢! -
如果你只做
$association->members,你会得到所有相关的成员,而不仅仅是活跃的一次......只是让你知道
标签: php laravel scope laravel-5 laravel-5.1