【发布时间】:2018-09-29 03:58:01
【问题描述】:
我在 Laravel 5.4 中遇到以下问题: 有一个用户表和一个成员表,其中一个用户可以有多个成员,一个成员属于一个用户。会员资格为年度期限,但会员每推荐一位在我的网站上注册的朋友,都会获得额外的免费天数,因此免费天数是不断变化的;这反过来又会更改会员资格的到期日期。 所以问题是:如果到期日期是一个变量,如何确定给定用户的活动成员资格? 我需要做这样的事情:
首先是Membership.php中的过期日期:
这会计算每个成员的总天数: 请注意,friendsDays 是在 User.php 中按用户计算的
public function getTotalDaysAttribute() {
$days = $this->paidDays + $this->user->friendsDaysRemaining;
return $days;
}
这会计算每个成员的到期日期:
public function getExpirationDateAttribute() {
$date = $this->startDay->addDays($this->TotalDays);
return $date;
}
到目前为止一切顺利......现在,这就是我卡住的地方(伪代码):
public function scopeActive($query, $dateToCheck = Null) {
$query->where($dateToCheck >= $this->expirationDate);
}
如何正确编码以获得:
dump($user->membership()->active()->get());
提前致谢。
【问题讨论】:
标签: php laravel laravel-5 eloquent laravel-5.4