我一直在使用Yii一段时间,当我想从数据库中提取数据时,我通常只使用一个findByAttributes.
$model=Auction::model()->findAllByAttributes(array('status'=>'1'));
或者沿着这些方向的东西.
我的问题是,如何处理大于类型的情况?我试过了
$model=Auction::model()->findAllByAttributes(array('starttime'>=$date));
哪个日期被分配了当前的日期/时间设置,但这会导致错误.所以我的问题是我需要使用条件和参数吗?我应该在模型中使用这种类型的东西,还是使用Criteria或CActiveDataProvider的东西?
我会赞赏有人指出我正确的方向.我一直使用findAll(),但我知道他们是一个更好的方法来做到这一点.有关什么和何时使用属性,条件,参数等的一些一般信息也将是很好的.
我已经阅读了Yii文档,并搜索了大量的网站来解答这些问题,而我没有找到它.
使用params甚至与findByAttributes是一个好主意,但只有匹配.您可以使用findAll并添加一个条件语句,并且格式与您已经在做的工作非常相似:
$model=Auction::model()->findAll(array( 'condition'=>'status=:status AND starttime >= :date','params'=>array(':status'=>1,':date'=>$date),));
如果您正在进行非常复杂的查询或以编程方式构建查询,则可能需要使用findAllBysql或CDbConnection :: createCommand或Query Builder,这取决于对您的应用程序最有意义的内容.
我会(07年)再次阅读Yii部分,但没有广泛的例子,很清楚.那么你可以尝试Yii博客教程,Larry Ullman’s tutorials等.