我試圖保存具有驗證isUnique規則但嘗試通過下面的方法更新時出現問題的字段的數據。CakePHP使用驗證保存數據isUnique
$this->Model->id = 1;
$this->Model->save($this->data);
如果我上面做,這會產生驗證錯誤說我只允許有獨特的價值,但我想,而不是更新此。
有沒有辦法解決這個問題?
我試圖保存具有驗證isUnique規則但嘗試通過下面的方法更新時出現問題的字段的數據。CakePHP使用驗證保存數據isUnique
$this->Model->id = 1;
$this->Model->save($this->data);
如果我上面做,這會產生驗證錯誤說我只允許有獨特的價值,但我想,而不是更新此。
有沒有辦法解決這個問題?
這對我來說很好,手動設置時,Cake會嘗試更新主鍵爲id
的記錄。
在表格中搜索與所謂的「唯一」數據;並查看是否可以找到任何其他結果。在您引入isUnique
驗證規則之前,您可能有重複使用的數據。
您是否在循環中執行此更新?
您可以嘗試將模型中的on
驗證規則更改爲create
,以防止它在更新上觸發;但我不確定這是否有必要;再加上你可以用update
記錄重複的信息,擊敗目的!
var $validate = array(
'fieldName1' => array(
'rule' => 'isUnique',
'required' => true,
'allowEmpty' => false,
'on' => 'create', // here
'last' => false,
'message' => 'Your Error Message'
)
);
只要將id和數組一起傳遞即可。像:
$this->create();
$data['id'] = $id;
$this->save($data);
如果你傳遞數據數組中的id,會發生什麼? – mark