保存數據的這兩種方式之間的區別是什麼CakePHP中保存數據是什麼CakePHP中
$this->request->data['User']['status'] = 'Active';
$this->User->saveField('status', 'Active');
保存數據的這兩種方式之間的區別是什麼CakePHP中保存數據是什麼CakePHP中
$this->request->data['User']['status'] = 'Active';
$this->User->saveField('status', 'Active');
$this->request->data['User']['status'] = 'Active';
這意味着你將在之後調用save()或saveAll()。這些方法將檢查數據的有效性。
$this->User->saveField('status', 'Active');
沒有數據驗證,您需要在調用saveField之前設置$ this-> User-> id。
感謝您的信息。 – Cameron 2012-02-29 21:38:56
的區別這兩種方式之間的區別是,這行代碼實際上不保存任何數據:
$this->request->data['User']['status'] = 'Active';
它只是改變該模型上的字段。
如果您要更新該字段,然後執行$this->User->save()
,則需要保存整個模型(包括剛更改的字段)。
當您使用$this->Model->saveField(field,value)
時,您實際上是使用當前加載模型的新字段值更新數據源。
如果您尚未加載所有數據字段,並且使用save()
將驗證失敗或使用空/空值覆蓋現有值,您可能需要使用saveField()
。
你不能比較這兩個。首先你應該爲這個問題添加$ this-> Model-> save()來做出任何意義。 – mark 2012-02-29 21:19:28