ActiveRecord 直译为 活动记录,以下简称 AR。一个 AR 类关联一张数据表, 每个 AR 对象对应表中的一行,对象的属性(即 AR 的特性 Attribute )映射到数据行的对应列。更详细的资料参见 官方手册
。
# 定义类
class Customer extends ActiveRecord
{
// ...
}
在 官方手册 里简单的介绍了 AR 的常用用法,包括 new 和 静态 方法的使用:
new Customer();
通过 new 一个 AR 类对象方式 使用时,其操作都是基于数据表中的一条记录Customer::all();
通过 AR 类的 静态 方式使用时,其操作都是基于整个数据表常用静态方法:
# 返回所有数据
Customer::find()->all();
# 返回主键 'id'='1' 的一条数据
Customer::findOne($id);
# 返回 'name'='小伙儿' 的一条数据
Customer::find()->where(['name'=>'小伙儿'])->one();
# 返回 'name'='小伙儿' 的所有数据
Customer::find()->where(['name'=>'小伙儿'])->all();
# 返回所有数据(按 id 降序)
Customer::find()->orderBy('id DESC')->all();
# 用 SQL 语句查询 customer 表里面的所有数据
Customer::findBySql('SELECT * FROM user')->all();
# 用 SQL 语句查询 customer 表里面的一条数据
Customer::findBySql('SELECT * FROM user')->one();
# 返回 'sex'='男' 并且 'age'='24' 的数据统计
Customer::find()->andWhere(['sex'=>'男','age'=>'24'])->count('id');
# 返回 'sex'='%男%' 的所有数据
Customer::find()->andWhere(['like','sex','男'])->all();
# 返回 'sex'='%男' 的所有数据
Customer::find()->andWhere(['like','sex','%男',false])->all();
# 返回一条数据
Customer::find()->one();
# 返回所有数据
Customer::find()->all();
# 返回所有数据的数量
Customer::find()->count();
# 返回所有数据的第一列
Customer::find()->column();
# 返回 SQL 语句
Customer::find()->createCommand()->getRawSql();