我正在使用CodeIgniter DataMapper ORM,但有些東西我不太明白。CodeIgniter DataMapper ORM如何知道要應用哪組驗證規則?
在此示例中,您可以看到在User模型類上定義了一些$validation
規則。
裏面的login
功能,你還可以看到,它調用$this->validate()->get()
。當validation
函數運行時,它應該從$validation
檢查全部規則。
我不明白的是,對於登錄用的情況下,只有用戶名和密碼需要驗證,但你可以看到有無關,這種使用情況下,在例如其他的驗證規則。具體而言,在$validation
上定義了confirm_password
規則,並且該規則顯然僅用於更新用例,而不是登錄用例。
由於在示例中我沒有看到任何繞過這些不相關規則的代碼,因此DataMapper ORM如何知道這些不相關的規則可以在login
函數中繞過?
非常感謝大家。
如果這是真的,它如何知道'confirm_password'規則應該運行更新用例? – bobo 2011-04-21 12:23:22
更新實際上只是節省。您只需獲取一個對象,設置要更改的字段,然後再次運行save()。 – Matthew 2011-04-21 12:26:55
是的,但是當用戶想要更新他的密碼時,DataMapper ORM應該檢查'confirm_password'規則,當'confirm_password'是非數據庫表字段時,DataMapper如何知道這個規則應該被考慮到,無論它是登錄用例或更新用例? – bobo 2011-04-21 12:52:32