laravel - 标记每个资源的重叠事件(FullCalendar 5,Laravel 7)
问题描述
使用resourceTimelineWeek
FullCalendar 5,我需要检查重叠事件——不是一般情况,而是每个资源。目标是在事件重叠时在一个资源周围制作红色边框。我只是无法掌握如何使用 Eloquent 在 Laravel 7 中实现这一点。我正在获取我想要应用检查的所有资源的事件
protected $appends = ['color','borderColor'];
$events = Toolplan::query()
->select('id', 'eventId', 'resourceId', 'title', 'start', 'end')
->where(function ($query) use ($start, $end) {
$query
->where(function ($q) use ($start, $end) {
$q->whereDate('start', '>=', $start)->whereDate('end', '<=', $end);
})
->orWhere(function ($q) use ($start, $end) {
$q->whereDate('start', '<=', $start)->whereDate('end', '>=', $end);
})
->orWhere(function ($q) use ($start, $end) {
$q->whereDate('end', '>=', $start)->whereDate('end', '<=', $end);
})
->orWhere(function ($q) use ($start, $end) {
$q->whereDate('start', '>=', $start)->whereDate('start', '<=', $end);
});
})
->whereIn('eventId', $processIds)
->get();
return json_encode($events);
在我的Toolplan.php
并且想使用一个 Mutator 我也在我的定义中Toolplan.php
:
public function getBorderColorAttribute($value)
{
$overlaps = $this->eventOverlaps();
if($overlaps)
return 'Red';
return $this->color;
}
现在的问题是我需要确定一个资源的两个事件是否重叠,这就是我卡住的地方:
public function eventOverlaps()
{
(...) // ???
return true;
return false;
}
我很感激任何正确方向的提示。
解决方案
推荐阅读
- android - 如何使 TextView 中的字体相对于其大小更大或更小
- python - 循环遍历文本文件并将每一行动态保存到变量中
- biztalk - 启用 TLS 1.2 并禁用较低版本的 SSL 和 TLS 后无法连接到 BizTalk 组
- javascript - 为数组的每个元素做某事在数组中指定
- excel - 如何将标题复制并转置到另一张纸上?
- visual-studio-code - 每次在 VSCode 中使用 CodeRunner 时如何编译和运行
- selenium - 如何在文档的棘手部分(对我而言)中创建 Xpath,以便在 VBA 中与 Selenium Basic 一起使用
- php - 向数据库提交数据时出现错误消息
- angular-cli - ng new 命令需要很长时间
- java - 如何为其他人导出包含所有内容和资产的已构建 AEM 站点?