在cakephp中更新表时如何删除条目?

在cakephp中更新表时如何删除条目?,php,jquery,mysql,cakephp,Php,Jquery,Mysql,Cakephp,我有发票模式和发票收费模式。发票费用属于发票&发票有许多发票费用。发票费用与发票中列出的产品和服务类似 我正在使用jQuery添加更多行以添加更多费用 按原样保存发票和发票表 但当涉及到编辑发票时,我需要一个“删除行”按钮(多亏了javascript,它可以工作)。保存发票时,我想用新值更新发票费用表,同时我想删除发票中不再存在的实体(因为我通过单击“删除行”按钮删除了一些费用)。我可以使用ajax函数在单击“删除行”按钮后立即删除这些条目;但我不同意这种方法。我只想在保存发票时添加/删除/更新

我有发票模式和发票收费模式。发票费用属于发票&发票有许多发票费用。发票费用与发票中列出的产品和服务类似

我正在使用jQuery添加更多行以添加更多费用

按原样保存发票和发票表

但当涉及到编辑发票时,我需要一个“删除行”按钮(多亏了javascript,它可以工作)。保存发票时,我想用新值更新发票费用表,同时我想删除发票中不再存在的实体(因为我通过单击“删除行”按钮删除了一些费用)。我可以使用ajax函数在单击“删除行”按钮后立即删除这些条目;但我不同意这种方法。我只想在保存发票时添加/删除/更新条目


请指导我。

保存新发票应该没有问题,只需在数据上执行相关的保存操作即可。编辑发票时,首先使用saveAssociated保存所有数据,但在保存时,请找出当前保存的行项目的ID。您可以执行如下操作,轻松跟踪在saveAssociated操作期间创建的所有新行项目的ID-

然后,对所有行项目执行deleteAll操作,这些行项目的发票_id是您正在编辑的发票的id,但其id不在您要保留的发票的集合中。这将删除您不再需要的所有旧行项目

$this->LineItem->deleteAll(array('LineItem.invoice_id' => 1, 'NOT' => array('LineItem.id' => array(1, 2, 3, etc.,));
由于此方法需要多次数据库调用来保存发票,因此您应该在事务中执行此操作