一、数据库查询

$sql='select * from test where id=:id';
$results=Test::findBySql($sql,[':id'=>1])->all();
$results=Test::find()->where('id=:id',[':id'=>1])->asArray()->all();
//批量查询
foreach(Test:find()->batch(2) as $test){
   print_r($test);
}

二、数据库删除

$results=Test::deleteAll('id>:id',['id'=>0]);

三、数据库添加

$test=new Test();
$test->id=3;
$test->title='3'
$test->validate();
if($test->hasErrors()){
   echo 'error';
}
$test->save();

四、数据库修改

$test=Test::find()->where('id=:id',[':id'=>1])->one();
$test->id=3;
$test->title='3'
$test->save();
$test=Test::updateAll('id=:id')

五、数据库关联查询

$test=Test::find()->where('id=:id',[':id'=>1])->one();
$test->orders
public function getOrders(){
  return $this->hasMary(Order::className(),['order_id'=>'id']);
}
$test=Test::find()->where('id=:id',[':id'=>1])->one();
$test->job;
public function getJob(){
  return $this->hasOne(Job::className(),['job_id'=>'id']);
}
//性能优化
//1.查询结果缓存
unset($test->order);
$test->order
//2.多次查询
foreach(Test::find()->width('orders')->all as $test){
    $test->orders;
}

上一篇:Yii2学习笔记五:params使用

下一篇:Yii2学习笔记七:Yii2怎么引入css和js文件