php - 检索关系后如何使用 Carbon 计算日期?
问题描述
我正在尝试获取当前用户并查看他们所有分配的项目,然后我想获取当前用户的到期日期并计算与今天的差异并显示分配在 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}}
解决方案
您正在访问集合上的属性,因此要么获取单个实例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
推荐阅读
- ruby - 如何使用 rbenv 在 virtualbox/ubunto 20.04 上下载 Ruby (<2.0)
- reactjs - 使用.set时如何使react hookstate.js停止重新渲染?
- windows - Perl Windows 替代“系统”(打开多个进程)
- sql - 对包含整数的 VARCHAR 列进行排序
- html - 如何在不改变宽度的情况下增加元素的点击区域
- python - 应用程序正在运行,但每当上传文件时,我都会在 django 中收到“从守护进程收到的截断或过大的响应标头”
- javascript - 如何在库中单独更改每张卡片的“卡片背面图像”:Deck-of-Cards.js?
- c++ - 如何根据返回类型推断模板参数?
- c++ - 如何使用 libcurl 存储发送/接收的数据
- rust - Rust 类型转换