【发布时间】:2016-10-27 13:12:32
【问题描述】:
我有一个名为 Task 的模型,其中包含以下字段:
trade_idsite_idthird_email_alert_date
我正在尝试在 Task 模型上执行 find(),其中有 3 个任务具有相同的 site_id 和 trade_id 作为相应的请求数据,然后我将发送一封电子邮件并填充 third_email_alert_date字段。
所以本质上它应该做以下事情:
- 找到最后 3 个具有相同
trade_id和site_id的任务 - 发送电子邮件并在
third_email_alert_date中填写电子邮件的发送日期 - 从设置了
third_email_alert_date的记录之后重新开始计数。
这是我所拥有的:
任务条件:
$task_conditions = array(
'Task.trade_id' => $this->request->data['Task']['trade_id'],
'Task.site_id' => $this->request->data['Task']['site_id']
);
按创建日期降序排列,以便我们首先处理最新任务:
$tasks= $this->Task->find('all', array(
'conditions' => $task_conditions,
'order' => 'created DESC'
)
);
这为我提供了 trade_id 和 site_id 匹配的所有记录以及最近创建的订单。
我似乎无法弄清楚如何找到最后 3 个并从新更新的记录中再次计数。有什么想法吗?
【问题讨论】:
-
你可以
'order' => 'modified DESC'和'limit' => 3 -
我无法通过
modified订购,因为任务上的另一个字段可能随时被修改,因此这将不起作用,因为我需要检查third_email_alert_date -
然后您可以添加一个新字段,例如
email_sent type DATETIME,您可以在其中存储日期时间 ORDER 并限制您的查询 -
我已经有那个叫
third_email_alert_date的了?但是我将如何保留它对记录的计数方式?