php - Laravel - how to select items by calculated deadline date
问题描述
My model has a "deadline" date which is 15 days after it's creation date.
So I'm trying to select items by filtering this date.
<select name="deadline">
<option value="">any</option>
<option value="10">less than 10 days</option>
<option value="6" >less than 6 days</option>
<option value="3" >less than 3 days</option>
<option value="0" >delayed</option>
</select>
controller
$deadline_total_days = 15;
$filter_deadline_days = request()->get('deadline');
$q->whereDate('created_at', '<=', Carbon::now()
->addDays($filter_deadline_days)
->subDays($deadline_total_days)
);
...
This is not working. It always brings all items from database.
Am I doing something wrong?
解决方案
这是一个逻辑问题,通过以下方式解决:
$q->whereRaw('DATEDIFF(DATE_ADD(created_at, INTERVAL '.$deadline_total_days.' DAY), CURDATE()) <= '.$filter_deadline_days.' ');
推荐阅读
- python - 如何在熊猫的列上应用公式
- php - PHP Laravel - 组合键 - 错误关系 *RECURSION*
- swift - 枚举Bundle中的sks文件
- java - 从字符串中删除停用词以创建集群
- python - 我可以在 iOS 应用程序中使用用 python 编写的聚类模型吗?
- c# - 如何使用 oracle 在 .net 框架控制台应用程序中创建实体数据模型?
- java - 不能让我的 JButtons 响应。除该面板外的所有内容都调整大小
- c - 编译器如何处理枚举中的符号常量?
- python - 在 Spyder 中创建和运行 Abaqus 几何,而不是打开 Abaqus 命令
- python - 如何在圆的周长上画圆?