我正在使用Cakephp 3.x并且我想更新单个字段以获得多个ID。事情是这样的..在CakePHP 3.x的updateAll()方法中使用IN子句
UPDATE mytable SET `status` = '1' WHERE ID IN (1,2,3)
目前我使用的查询使用cakpehp
$this->Leaveregisters->query()
->update()
->set(['leaveregister_status' => $this->request->data('status')])
->where(['leaveregister_id IN ('.$this->request->data('final_ids_string').')'])
->execute();
嗯,这确实为我的把戏,但我使用CakePHP 3.xs希望这是执行来执行此操作ORM方法..所以我试图用这个代替
$table->updateAll(['field' => $newValue], ['id' => $entityId]);
但是这个代码是单一ID仅我不想..我也不想用foeach
循环执行相同的一ction。相反,我想要一个ID通过数组或逗号在任何情况下分开传递,并希望执行相同的操作。
有什么办法,我可以使用使用CakePHP的3.X
感谢
非常感谢你..这对我有用..另外我得到值逗号分离和它的内部变量,所以我把它转换成像这样的数组** $ int_array = array_map(“intval”,explode(“,” $ this-> request-> data('final_ids_string'))); **然后简单地在这里发送这个数组** ['leaveregister_id IN'=> $ int_array] **,这对我来说是个窍门。你为你的努力..高度赞赏.. –