我有一张桌子叫lists
. 此列表一次填充多行。第一次用 3 行填充表格。之后,此表的任何更新可能是 2 行或 6 行。
我想相应地删除/更新。这意味着,如果下一次更新的行数少于当前行数,则应删除其余行。或者,如果下一行大于当前行,则相应的行应该更新,其余行添加自动递增的 id。
我正在使用 CakePHP 2.6.7。
我有一张桌子叫lists
. 此列表一次填充多行。第一次用 3 行填充表格。之后,此表的任何更新可能是 2 行或 6 行。
我想相应地删除/更新。这意味着,如果下一次更新的行数少于当前行数,则应删除其余行。或者,如果下一行大于当前行,则相应的行应该更新,其余行添加自动递增的 id。
我正在使用 CakePHP 2.6.7。
我不确定我是否理解你的问题,但也许你想使用类似的东西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()
这里,关于Model::delete()
和Model::deleteAll()
这里
我希望它会帮助你。