检索关系后如何用Carbon计算日期?

时间:2019-04-30 09:32:17

标签: php laravel

我试图获取当前用户并查看其所有已分配项目,然后我想获取当前用户的到期日并计算与今天的差额,并且显示分配应在3天内到期。

如何获取关系后如何计算日期之间的差异?

这是我在模型,控制器和刀片服务器中尝试过的。

型号:

public function getDates()
{
    return ['created_at', 'due'];
}


public function getDueAttribute()
{
    $due = Carbon::parse($this->attributes['due'])->diff(Carbon::now())->format('%d');
    return $due;
}

控制器:

$assignents = Assign::whereHas('users', function ($q) {
    $q->where('user_id', Auth::user()->id);
})->get();
$assignents->due;

刀片:

{{$due}}

1 个答案:

答案 0 :(得分:1)

您正在访问集合中的属性,因此 要么获取Assignment

的单个实例
$assignment = Assign::whereHas('users', function ($q) {
    $q->where('user_id', Auth::user()->id);
})->first();

$due = $assignment->due;

---- blade ----
Assignment is due in {{ $due }} days

或遍历集合以访问属性

$assignments = Assign::whereHas('users', function ($q) {
    $q->where('user_id', Auth::user()->id);
})->get();

---- blade ----
@foreach ($assignments as $assignment)
Assignment is due in {{ $assignment->due }} days
@endforeach