我有一张名为lists
的表格。此列表一次填充多行。第一次表填充3行。之后,该表的任何更新可能是2行或6行。
我想相应地删除/更新。这意味着,如果下一次更新的行数少于当前行,则应删除其余行。或者如果下一行比当前行大,那么相应的行应该更新,其余的行添加自动增加的id。
我正在使用CakePHP 2.6.7。
答案 0 :(得分:1)
我不确定我是否理解你的问题,但也许你想要使用像Model::saveAll()
这样的东西
$data = array(
array('id' => 1, 'body' => 'Comment 1'),
array('id' => 2, 'body' => 'Comment 2')
);
$this->Comment->saveAll($data);
这将执行以下命令:
UPDATE `blog`.`comments` SET `id` = 1, `body` = 'Comment 1' WHERE `blog`.`comments`.`id` = 1
UPDATE `blog`.`comments` SET `id` = 2, `body` = 'Comment 2' WHERE `blog`.`comments`.`id` = 2
要删除多条记录,请使用Model::delete()
:
$this->Comment->delete(array(1, 2), false);
这将执行以下SQL命令:
DELETE `Comment` FROM `blog`.`comments` AS `Comment` WHERE `Comment`.`id` IN (1, 2)`
详细了解Model::updateAll()
和Model::saveAll()
here以及Model::delete()
和Model::deleteAll()
here
我希望它会对你有所帮助。