以下是我在模型中使用的代码并在控制器中调用此函数。 我已经尝试了3种不同的方法来删除记录,但没有一种方法可以正常工作。 在调用此函数时,它显示删除但未删除记录。
function deleteRecord($id, $componentName, $action)
{
try{
echo 'deleting';
$this->deleteAll($id);
//$this->delete(['id' => $id]);
//$this->query("DELETE FROM `ebay_leave_feedback_queues` WHERE `id`= 983");
}catch(Exception $e){
$returnArray = array( // creating an array to log msg
'Ack' => 'Error',
'ErrorCode' => '122456',
'Message' => $e->getMessage(),
'TraceOfException' => $e->queryString,
'RowId' => 'Component: /Controller/Component/' . $componentName . ', Function: ' . $action . ', Table: =feedback_queues, Row Id: ' . $id
);
App::import('Model', 'SystemErrorLog');
$SystemErrorLog = new SystemErrorLog();
$SystemErrorLog->writeLog($returnArray, $componentName, $action);
}
return true;
}
如果我写错了,请告诉我 你会得到帮助。
答案 0 :(得分:0)
你几乎就在那里,你交换了deleteAll()和delete()函数:
delete()接受一个ID(假设您的模型有一个主键集,标记为'id'或在模型中定义);它旨在删除单个记录。
deleteAll()接受带条件的数组;它的用途是根据这些条件删除多个记录。
所以它是:
delete($id);
或
deleteAll(['id' => $id]);
在这种情况下,后者有点矫枉过正。
然而,问题仍然存在:为什么要添加此功能,因为您可以直接从控制器调用delete()?
答案 1 :(得分:0)
由于您是从控制器调用此功能,因此需要使用以下内容:
$this->Model->delete($id);
确保将Model替换为您的型号名称。