yii 如何以 CDbCriteria 方式查询数据库(一)

PHP  Yii  MySQL  

CDbCriteria是yii封装的一个数据库查询类,类似于一种格式化的数据库查询方式。其目的是为了让数据库查询更加的灵活和清晰,与php手册的数据库操作稍有区别。

CDbCriteria 的使用范例


初始化和查询结果

$criteria = new CDbCriteria;
// 在这里添加一些查询条件
// ...
// 在这里返回查询结果
$result1 = new CActiveDataProvider($this, array(
'criteria'=>$criteria,
));
// 或者在这里返回查询结果
$result2 = SomeModel::model()->findAll($criteria);


查询条件的设置方式

公共属性

隐藏继承属性

属性类型描述定义在
aliasstring表的别名CDbCriteria
conditionstring查询条件CDbCriteria
distinctboolean是否查询不重复的数据CDbCriteria
groupstring数据如何分组CDbCriteria
havingstring和 group 一起使用,作为group的条件CDbCriteria
indexstring应将其值用作查询结果数组的索引的AR属性的名称。CDbCriteria
joinstring如何与别的表一起联合查询CDbCriteria
limitinteger查询结果的最大返回数量。CDbCriteria
offsetinteger从零算起,返回多少条记录后的数据。CDbCriteria
orderstring查询结果如何排序CDbCriteria
paramCountinteger不设定参数名称的参数数量。CDbCriteria
paramsarray查询条件的一个列表,例如:array(':name'=>'Dan', ':age'=>31)CDbCriteria
scopesmixedscopes to apply

只有在使用以下方法时,该属性才有效:
  • CActiveRecord::find()

  • CActiveRecord::findAll()

  • CActiveRecord::findByPk()

  • CActiveRecord::findAllByPk()

  • CActiveRecord::findByAttributes()

  • CActiveRecord::findAllByAttributes()

  • CActiveRecord::count()



能按以下列表的其中一项设置:
  • One scope:
    $criteria->scopes = 'scopeName';

  • Multiple scopes:
    $criteria->scopes = array('scopeName1','scopeName2');

  • Scope with parameters:
    $criteria->scopes = array('scopeName'=>array($params));

  • Multiple scopes with parameters:
    $criteria->scopes = array('scopeName1' => array($params1), 'scopeName2' => array($params2));

  • Multiple scopes with the same name:
    array(array('scopeName' => array($params1)), array('scopeName' => array($params2)));

CDbCriteria
selectmixed需要通过查询获取结果的列名,默认获取所有列CDbCriteria
togetherboolean外表是否应该与主表放在同一个SQL查询中CDbCriteria
withmixedcriteria 查询关系。CDbCriteria
yii 如何以 CDbCriteria 方式查询数据库(一)

时间:2017年03月29日    作者:孟德    分类:后端   浏览:2471    评论:0

链接地址:https://www.abclogs.com/backend_php_yii_cdbcriteria_1.html