【发布时间】:2021-09-18 13:06:32
【问题描述】:
我想在 Laravel 的 Eloquent Query 中找到两个日期之间的天数。 我有这样的查询,
$credentials = Documents::whereIn('agency_id', $agency_ids)
->with('dp_credential')
->get()->toArray();
if (count($credentials)) {
foreach ($credentials as $val) {
if ($val['dp_credential']) {
$current_date = new DateTime(date('Y-m-d'));
$expiry_date = new DateTime($val['dp_credential']['expiry_date']);
$interval = $current_date->diff($expiry_date);
$days = $interval->format('%r%a'); // if you getting days in minus then use %r
$val['dp_credential']['days'] = $days;
$val['dp_credential']['is_expiry'] = 0;
if ($days < 30) {
$val['dp_credential']['is_expiry'] = 1;
}
}
}
}
急切加载关系
public function dp_credential() {
return $this->hasone('App\Model\ClinicianCredentials', 'document_type', 'id')
->where('clinician_id', Auth::User()->id);
}
现在我想在当前日期和 dp_credential 之间的 eloquent 查询中查找没有每个循环的日期存在一个日期。如果天数少于 30 天,那么我想添加一个额外的密钥,是否可以不使用每个循环。
这很好用,但我想要这个没有 for each 循环。
对不起,我的英语不好。
【问题讨论】:
-
你可以显示具有 dp_credential 关系的模型文档吗?
-
查看更新我的问题
标签: laravel laravel-5 eloquent eloquent-relationship