我试图将此直接更新查询转换为cake的更新方式。
$this->Test->query("UPDATE tests SET rating=3 WHERE goal_id=1 AND employee_id=28");
通常我们更新时设置id然后保存,对吗?
$this->id = 1;
$this->Test->save($data);
但是我在这里利用(goal_id + employee_id)的组合来识别行。那么我该如何更新呢?
答案 0 :(得分:0)
您可以使用updateAll()
,您恰好正在更新1条记录,而不是该方法名称所暗示的许多记录。
Model::updateAll(array $fields, array $conditions)
因此,对于您的测试,您将使用:
$this->Test->updateAll(
array('rating' => 3),
array('goal_id' => 1, 'employee_id' => 28)
);