2012-03-22 47 views
0

我是CodeIgniter中的DataMapper ORM的新手,這是我的問題。根據手冊:更新DataMapper驗證數據ORM CodeIgniter

請注意這種方法。沒有限制它與 語句或類似的方法,它將修改 表中的每一行!

此外,此方法繞過驗證,並且還可以對錶內外鍵進行操作,因此請注意風險。

如果更新方法繞過驗證,更新之前更新記錄驗證它的方式是什麼?示例代碼將不勝感激。

回答

0

DataMapper的ORM無法驗證,因爲它只能做到這一點上,您最初獲取的數據。使用UPDATE可讓MySQL修改字段而不檢查最終的PHP驗證功能。

該解決方案首先抓取所需的所有行,並使用save()函數。然後PHP端驗證將完成。

http://datamapper.wanwizard.eu/pages/save.html

我在DataMapper的ORM有點生疏,但這裏有一個例子應該說明你應該做的:

$users = new User(); 
$users->where('age', 25)->get(); 
foreach($users as $user) 
{ 
    $user->age = 26; 
    $user->save(); 
} 
0

的update()方法是沒有更多然後$這個別名 - > DB->更新()。

如果更新時間戳需要添加到更新的記錄只檢查,並確保通過字段你要更新表存在。

更新對象,請使用保存()。它將自動確定是否需要INSERT或UPDATE。

+0

在使用save()的情況下,不是設置上傳時間戳或修改創造? – greenLizard 2012-03-27 10:23:04

0

如果你嘗試$ obj->保存();和動態驗證規則(依賴於某些$ _ POST變量)和仍然沒有驗證,

嘗試使用$ obj-> force_validation();在$ obj-> save()之前;更新對象