我正在处理一个返回所有已发布记录的查询,并按最新的 updated_version 对它们进行分组和排序。
然后我过滤该结果以显示在过去 24 小时、一周和一个月内更新的结果。
所有的作品花花公子。但是,我想添加一个条件,即如果这三个日期条件中的每一个都没有更新记录,则回显“没有更新记录”。
我很好奇我是否可以在查询中隔离这些组并对其进行检查,或者可能在循环中设置一个变量。循环的问题是,我可以在循环中获得 0 结果条件,但是因为它正在检查循环内部,所以我得到循环中每条记录的“未找到结果”的回声。
好的,这是查询:
//return all unpublished records
$draftEntries = Doctrine::getTable("foo")
->createQuery()
->where('published = 0')
->groupBy('updated_at')
->orderBy("updated_at DESC")
->execute();
和循环:
$message .= "These profiles were edited within the last 24 hours: \n";
foreach ($draftEntries as $entry) {
$currentDay = substr($entry['updated_at'], 0, 10);
$condition = false;
if($currentDay == $today) {
$condition = true;
$message .= $entry['last_name'] . ", " . $entry['first_name'] . "\n";
else {
$message .= "There were records updated yesterday";
echo $condition;
}
}
这只是三个循环中的一个,但我想你明白了我的意图。显然,这是返回的循环:
昨天更新了记录。昨天更新了记录。昨天更新了记录。...
这是不希望的。
那么,从查询中,我可以检查 groupBy 是否大于 0?当然,我可以在不设置三个查询来获得结果的情况下做到这一点吗?