我有一个名为Task的模型,其中包含以下字段:
trade_id
site_id
third_email_alert_date
我正在尝试在Task模型上执行find(),其中有3个任务与相应的请求数据具有相同的site_id
和trade_id
,然后我将发送一封电子邮件并填充third_email_alert_date
字段。
所以实质上它应该做到以下几点:
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并再次从新更新的记录中进行计数。有什么想法吗?
答案 0 :(得分:0)
设置默认为false的TINYINT字段。当发送电子邮件时,标记三封电子邮件发送为真,然后在您的查找中包含电子邮件发送字段。
$tasks= $this->Task->find('all', array(
'conditions' => $task_conditions + ['email_sent' => false],
'order' => 'created DESC'
)
);
或者,如果您需要日期,只需用日期标记所有三个日期,然后更改date_field =>的排序条件空