总结yii2里面AR一些强大的curd方法:
先声明AR类,gii生成或在models目录中手动创建:
namespace app\models;
use yii\db\ActiveRecord;
class News extends ActiveRecord{
public static function tableName(){
return '{{%news}}';
}
/**
* @news与cate关联,获取关联cate信息
*/
public function getCate(){
return $this->hasOne(Cate::className(),["cid"=>"id"]);
}
}
返回yii\db\ActiveQuery实例,然后尽情发挥yii强大的AR功能吧!!
News::find() //返回查询实例
News::find()->one() //返回一条数据
News::find()->all() //返回所有数据
News::find()->asArray()->all() //以数组形式返回所有数据
News::find()->count() //返回所有记录条数
News::find()->max() //返回最大值,默认值为id
News::find()->min() //返回最小值
News::find()->average() //返回指定列的平均值
News::find()->save() //保存或更新数据
News::findOne(1) //返回主键为指定值的记录,若主键为id,表示查找id=1的记录
News::findOne(['id'=>1,'status'=>News::STATUS_ACTIVE]) //返回主键为1,状态活跃的记录
News::findAll([1,2,3]) //返回id为1,2,3的一组记录
News::findAll(['status'=>News::STATUS_ACTIVE]) //返所有回活动状态的记录
News::find()->where(['status'=>1])->one() //返回包含指定条件【where里面的数组】的一条记录
News::find()->where(['status'=>1])->all() //返回包含指定条件【where里面的数组】的所有记录
News::find()->where(['status'=>1])->count() //返回包含指定条件【where里面的数组】的记录总数
News::find()->where(['status'=>1])->orderBy('id')->all() //返回包含指定条件【where里面的数组】的所有记录,按id排序
News::findBySql($sql)->all() //通过原生sql语句返回执行结果
News::findOne($id)->delete() //删除指定id的数据,先获取数据对象再去删除
News::deleteAll('age>:age',[':age'=>$age]) //返回符合指定条件【括号里面的参数】的数据