php - 如何在函数中使用 whereBetween 子句?
问题描述
我有一个包含一created_at
列的表,基于created_at
,我得到另一个名为: 的日期expired_at
。但是,expired_at
日期并未记录在数据库中。
如何在 Laravel 中过滤我的数据以fromDate
显示toDate
基于expired_at
.
我只能看到我得到的唯一选择是expired_at
在数据库中调用一条记录,然后运行类似以下的内容
$data=Table::whereBetween('expired_at', [$fromDate, $toDate])->get();
那么最好的解决方案是什么?如何使用whereBetween
计算的函数expired_at
?
解决方案
以我的经验,最好将计算过程放在您的应用程序上,而不是使用您的数据库引擎来计算您的日期!
对于这种情况,您可以使用Laravel's Eloquent
以实现您的目标。
这里有一些您可以在应用程序中使用的代码示例:
class YourModel extends Model
{
protected $table="your table name in databse";
public function scopeExpireDateBetween($query, $fromDate, $endDate)
{
//i assumed you're using Carbon library
$created_at_begin_date = $fromDate->minusDate(5);
$created_at_end_date = $endDate->minusDate(5);
return $query->whereBetween('created_at', [$created_at_begin_date,$created_at_end_date]);
}
}
如您所见,我在您的模型中添加了一个范围,您可以从控制器调用您的模型,如下所示。
public function index()
{
$results= YourModel::expireDateBetween("your expriration begin date", "your expiration end date")->get();
}
您可以在此处查看 laravel 的文档以获取更多信息
推荐阅读
- google-cloud-platform - LSB 启动失败:Treasure Data 的数据收集器
- java - ClassNotFoundException 与 exe 文件中包含的类
- mysql - SQL Where 子句,如何使第一个条件依赖于另一个条件
- jquery - 在到达 json 之前修改服务器上的 jquery-typehead 输入
- javascript - 如何使用jquery在下拉列表中绑定数据?
- azure-devops - 在 Microsoft DevOps 中更改组织所有者
- php - 如何从 WordPress 中的转发器打印子字段值
- javascript - 在Javascript中使用数组中的值进行计算
- github - 如何再次在 github 上按 Ctrl/Cmd + F
- c# - 如何在不饱和 RAM 的多用户并发环境中将巨大的 XML 文件转换为 JSON?