如果我只使用DAO在Yii中保存數據,我可以使用模型的規則功能嗎?當然,我不會宣佈AR實例。我仍然可以使用規則功能進行驗證嗎?Yii DAO實現。
回答
創建擴展CModel一個新的模型類。
正常情況下創建規則方法。
然後,您可以做
$model = new MyModel();
$model->myAttribute = 'value';
if ($model->validate())
{
Yii::app()->db->createCommand()
->update(
'MyTable',
array('myAttribute' => $model->myAttribute),
'key=:id',
array(':id' => 'key')
);
}
但是這並不能擊敗性能調整的目的嗎? yii的權威指南「雖然Active Record擅長以OOP方式對數據進行建模,但實際上它會降低性能,因爲它需要創建一個或多個對象來表示每行查詢結果。」然而,在我應用程序我必須一次查詢單個用戶的記錄,記錄被分成9個表格左右。所以我會聲明很多模型實例。如果我使用模型實例進行驗證,爲什麼不保存呢? – 2012-08-14 21:24:01
我的示例不使用活動記錄。它使用具有您要求的驗證功能的CModel類。 – Alex 2012-08-16 06:42:35
因此,您的MyModel()類的聲明擴展CModel而不是CActiveRecord?除了使用createCommand保存它之外,這裏的用法與AR看起來沒有什麼不同?那麼AR如何不同呢? – 2012-08-16 07:07:29
是的,你可以使用沒有問題。
這裏有一些鏈接,可以幫助你:
你能引導我到一個示例/文檔?我使用了AR實例的驗證規則,但從未使用過DAO。謝謝 !! – 2012-08-14 12:40:12
發佈您的代碼,以便我們可以幫助您。 – FabianoLothor 2012-08-14 12:51:37
好吧,在我開始使用實際編碼之前,我只是在制定策略。我閱讀了關於yii的權威指南,對於數據密集型應用,應該避免由於性能問題引起的AR。因爲我幾乎是一個業餘與yii我想確保我可以做必要的驗證,如果我從AR轉移到DAO,而不是自己設置驗證條件太多。我真的不知道如何驗證使用規則分開來自AR。 – 2012-08-14 13:02:12
- 1. 休眠DAO實現
- 2. EHCache與Spring DAO的實現
- 3. 使用Spring實現DAO
- 4. DAO類實例vs DAO EJB
- 5. 如何使用JPA實現測試DAO?
- 6. 如何在Scala中實現DAO?
- 7. 如何實現HAPI FHIR資源dao?
- 8. GlassFish下的JPA和DAO實現3.1
- 9. 在Android項目上實現DAO模式
- 10. Go和MongoDB:通用DAO實現問題
- 11. 如何在Java JOO中實現DAO/DTO?
- 12. SpringBoot使用MongoDB實現泛型DAO
- 13. 實現DAO類的正確方法?
- 14. 爲單個數據源實現DAO
- 15. 休眠DAO工廠不能實例DAO
- 16. Yii CGridView列值,實現從模型
- 17. Yii的消息系統實現
- 18. Yii框架中的RBAC實現
- 19. 在Yii中正確實現runWithParams()
- 20. 在Yii中實現自定義getter?
- 21. 多個DAO實例=錯誤?
- 22. DAO接口/實現分層次和公約
- 23. 在哪一層實現驗證器dao響應?
- 24. Spring MVC:如何從自定義接口實現DAO
- 25. 如何使用EntityManager(JPA)在DAO中實現update()方法?
- 26. 從控制器中分離DAO以實現可重用性
- 27. 未發現代碼Yii
- 28. 在Yii中實現菜單中的「selected」鏈接
- 29. 如何在Yii列表視圖中實現動態js腳本?
- 30. Yii在單個視圖上實現多個表單驗證
是的,你可以.... – NewUser 2012-08-14 12:35:30