如果我只使用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