我有类似的东西
$table = TableQuery::create()
->findOneByTableId(1);
foreach($table->getSomeTables() as $item) { // SomeTable is a table linked with foreign-key
$table->removeSomeTable($item);
}
if($table->save()) {
echo "success";
}else {
echo "fail";
}
这里的问题是,尽管$ table有someTablesScheduledForDeletion并且在调用方法save()时成功将其从数据库中删除,但save仍然返回0,好像" 0记录被更改",尽管有些记录是实际上删了。 如果我以与someTables
类似的方式附加更多内容,同样如此我想要实现的目的是获取成功删除这些元素的信息
答案 0 :(得分:0)
您应该在->delete()
上致电$item
,然后按预期使用->isDeleted()
。
例如:
$table = TableQuery::create()->findOneByTableId(1);
$deleted = 0;
foreach ($table->getSomeTables() as $item) {
$item->delete();
if ($item->isDeleted()) {
$deleted++;
}
}
if ($deleted > 0) {
echo "Rows deleted.";
} else {
echo "No rows deleted.";
}
答案 1 :(得分:-1)
发出另一个查询可能很有用。是否有理由避免这种情况?