如果我只使用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. 用Hibernate實現DAO?
- 2. 休眠DAO實現
- 3. DTO和DAO實現
- 4. Java/sql實驗DAO實現
- 5. 使用Spring實現DAO
- 6. EHCache與Spring DAO的實現
- 7. DAO類實例vs DAO EJB
- 8. 註解用SpringMVC用於DAO接口和DAO實現
- 9. Yii中的MVC實現1
- 10. 服務和DAO總是實現接口
- 11. 爲單個數據源實現DAO
- 12. 如何在Java JOO中實現DAO/DTO?
- 13. 如何在Scala中實現DAO?
- 14. SpringBoot使用MongoDB實現泛型DAO
- 15. 實現DAO類的正確方法?
- 16. Go和MongoDB:通用DAO實現問題
- 17. Java MVC DAO實現獲取NullPointerException錯誤
- 18. 如何使用JPA實現測試DAO?
- 19. GlassFish下的JPA和DAO實現3.1
- 20. 實現了DAO經理和塊
- 21. 如何實現HAPI FHIR資源dao?
- 22. 刪除操作的JPA和DAO實現
- 23. Spring + Hibernate:如何實現Entites和DAO
- 24. 在Android項目上實現DAO模式
- 25. 休眠DAO工廠不能實例DAO
- 26. 實現自定義yii模型
- 27. Yii框架,如何實現工會SQL
- 28. 在Yii中實現自定義getter?
- 29. 在Yii Framework中實現服務層
- 30. 在Yii中正確實現runWithParams()
是的,你可以.... – NewUser 2012-08-14 12:35:30