Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel/雄辩-日期在过去时_Php_Mysql_Laravel - Fatal编程技术网

Php Laravel/雄辩-日期在过去时

Php Laravel/雄辩-日期在过去时,php,mysql,laravel,Php,Mysql,Laravel,我正在开发一个应用程序,它使用Laravel和雄辩的语言来确定某些事情(工作)是否没有按时完成。这将作为日期存储在表中。例如:2016-07-18 我正在尝试获取所有今天日期大于表中存储的“完成日期”的记录 以下是我尝试过的: $id = \Auth::user()->id; $now = \Carbon\Carbon::today(); $jobs = Job::whereHas('manager', function ($user) use ($id) { $user->

我正在开发一个应用程序,它使用Laravel和雄辩的语言来确定某些事情(工作)是否没有按时完成。这将作为
日期
存储在表中。例如:
2016-07-18

我正在尝试获取所有今天日期大于表中存储的“完成日期”的记录

以下是我尝试过的:

$id = \Auth::user()->id;
$now = \Carbon\Carbon::today();

$jobs = Job::whereHas('manager', function ($user) use ($id) {
   $user->where('users.id', '=', $id);
})->where('complete_date', '>', $now)->get();
问题是它仍在检索将来的记录。例如,它返回的记录,我检查了表格,“完成日期”是
2016-08-31

有什么想法吗?

您的$now变量是一个碳对象,而不是日期

必须将对象转换为日期:

$now = \Carbon\Carbon::now()->format('Y-m-d');

然后您必须在模型查询中使用此变量。

您应该在何处执行
->('complete_date',“@Maraboc没有带回更多的行。我想检查
complete_date
是否高于今天,因此,这太过分了。我没有完全满足您的需要:p尝试使用
whereDate
而不是
where
@Maraboc基本上。如果我分配给您一项需要在J.26日完成的工作uly(昨天)和您没有完成它并在今天(28日)登录系统将检测到您已过期任务。在查询中使用时,碳自动转换为日期。无需手动格式化。@ceejayoz,碳自动转换为“Y-m-d H:i:s”而不是“Y-m-d”。由于数据库类型
DATE
没有时间部分,默认碳格式可被视为对comparis无效在上,不是吗?@Phargelm我将碳日期直接传递到
日期
字段没有问题。Laravel似乎在内部处理得很好(或者SQL server会自动处理)。