Yii2 常用代码集合

Yii2.0 对数据库查询的一些简单的操作

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 User::findOne($id);   //此方法返回 主键 id=1  的一条数据(举个例子);    User::find()->where(['name' => '老司机'])->one();   //此方法返回 ['name' => '老司机'] 的一条数据;   User::find()->where(['name' => '老司机'])->all();   //此方法返回 ['name' => '老司机'] 的所有数据;   User::find()->orderBy('id DESC')->all();   //此方法是排序查询;   User::findBySql('SELECT * FROM user')->all();  //此方法是用 sql  语句查询 user 表里面的所有数据;   User::findBySql('SELECT * FROM user')->one();  //此方法是用 sql  语句查询 user 表里面的一条数据;   User::find()->where("sex=:sex and age>:age", [':sex' => '男''age' => '24'])->count('id');   //统计符合条件的总条数;   User::find()->andWhere(['sex' => '男''age' => '24'])->count('id');   //统计符合条件的总条数;   User::find()->andFilterWhere(['like''name''老司机']); //此方法是用 like 查询 name 等于 老司机的 数据   User::find()->one();    //此方法返回一条数据;   User::find()->all();    //此方法返回所有数据;   User::find()->count();    //此方法返回记录的数量;   User::find()->average();    ///此方法返回指定列的平均值;   User::find()->min();    //此方法返回指定列的最小值 ;   User::find()->max();    //此方法返回指定列的最大值 ;   User::find()->scalar();    //此方法返回值的第一行第一列的查询结果;   User::find()->column();    //此方法返回查询结果中的第一列的值;   User::find()->exists();    //此方法返回一个值指示是否包含查询结果的数据行;   User::find()->batch(10);  //每次取 10 条数据    User::find()->each(10);  //每次取 10 条数据, 迭代查询

直接操作数据库 - 添加

1 2 3 4 5 6 7 8 9 10 11 $connection = \Yii::$app->db; $table '{{%user}}'; $data = [     "name" => $name, ]; $result $connection->createCommand()->insert($table$data)->execute(); //返回数量 if($result){     return ["status"=>1, "info"=>"保存成功""url"=>Url::to(['user/index'])]; }else{     return ["status"=>0, "info"=>"保存失败"]; }

直接操作数据库 - 批量插入

1 2 3 4 5 6 7 8 9 10 11 12 13 $connection = \Yii::$app->db; $table '{{%goods}}'; $data = [     "name" => "商品名称",     "price" => "25.63", ]; $lebels = ['name''price']; $result $connection->createCommand()->batchInsert($table$lebels$data)->execute(); if($result){     return ["status"=>1, "info"=>"保存成功""url"=>Url::to(['goods/list'])]; }else{     return ["status"=>0, "info"=>"保存失败"]; }

直接操作数据库 - 修改

1 2 3 4 5 6 7 8 9 10 11 $connection = \Yii::$app->db; $table '{{%user}}'; $data = [     "name" => $name, ]; $result $connection->createCommand()->update($table, ['name'=>$data["name"]], ['id'=>intval($data["id"]), 'uid'=>$uid])->execute(); //返回数量 if($result){     return ["status"=>1, "info"=>"保存成功""url"=>Url::to(['buyer/goods''id'=>$data["id"]])]; }else{     return ["status"=>0, "info"=>"保存失败"]; }

直接操作数据库 - 删除

1 2 3 4 5 6 $data $connection->createCommand()->delete($table, ["uid" => $uid"id" => $id])->execute(); //返回数量 if(!$data){     return ["status"=>0, "info"=>"删除失败 [没有找到相应内容]"]; }else{     return ["status"=>1, "info"=>"成功删除".$data."条记录"]; }

直接操作数据库 - 查询

1 2 3 4 5 6 7 $uid = Yii::$app->user->id; $table '{{%shop}}'; $query new Query; $data $query->from($table)->where(["uid" => $uid])->one(); if($data===false){     throw new \yii\web\NotFoundHttpException('店铺不存在'); }

设置错误提示

1 2 Yii::$app->session->setFlash('info''添加成功'); //类型可以为:error、danger、success、info、warning return $this->refresh(); //返回上一页并刷新

显示上面设置的错误提示

1 2 3 if( Yii::$app->session->hasFlash('info') ) {     echo Yii::$app->session->getFlash('info'); }

设置模型验证器返回的错误

1 2 3 4 5 6 7 8 9 10 11 12 13 14 if$model->getErrors() ) {     $msg '';         foreach($model->getErrors() as $k => $v){             $msg .= '<p>• '.$v[0].'</p>';         }     echo $msg; }   //或显示第一个错误信息:     if($model->getErrors()){         return ["status"=>0, "info"=>array_values($model->getFirstErrors())[0]];                             }else{         return ["status"=>1, "info"=>"成功"];                             }

SCENARIO 场景

1 2 $user new User(); $user->scenario = "login"//登录场景

REQUEST

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Yii::$app->request->get('id', 0); Yii::$app->request->post('name'); if(Yii::$app->request->isGet){ } if(Yii::$app->request->isPost){ } if(Yii::$app->request->isAjax){ }   //返回首页 Yii::$app->homeUrl   //返回上一页 return $this->goBack();   //当字符串中带有空格或者括号等会引起浏览器曲解,就要加上Html::encode进行Html编码的转换,以防出现一些不必要的错误 Html::encode($this->title);   //获取IP Yii::$app->getRequest()->getUserIP();

获取config/main.php配置的值

1 Yii::$app->authManager->assignmentTable

获取config/params.php配置的值

1 Yii::$app->params['paramsName']

yii2中常用路径

1 2 3 4 5 6 7 8 项目路径:Yii::$app->BasePath 或 Yii::getAlias('@app') 输出E:\website\wx\wwwroot\backend 根目录路径:dirname(Yii::$app->BasePath) 或 dirname(Yii::getAlias('@app')) 输出E:\website\wx\wwwroot 根目录下的任意目录:dirname(Yii::$app->BasePath).'/uploads' 或 dirname(Yii::getAlias('@app')).'/uploads'   $backend str_ireplace(dirname(Yii::getAlias('@frontend')), "", Yii::getAlias('@backend')); $url = Url::to(['/goods/view''id' => 5]); $url str_ireplace($backend""$url); $url = Yii::$app->params['site_url'] . $url;

文件缓存

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 //将信息写入缓存 $cache = Yii::$app->cache; $cache->set("cacheName"$cacheData);   //从缓存取出信息 $cache = Yii::$app->cache; $data $cache->get("cacheName"); if($data){     //读取成功 }   //删除指定的缓存 $cache = Yii::$app->cache; $cache->delete("cacheName");   yii\caching\Cache::get():通过一个指定的键(key)从缓存中取回一项数据。如果该项数据不存在于缓存中或者已经过期/失效,则返回值 false。  yii\caching\Cache::set():将一项数据指定一个键,存放到缓存中。  yii\caching\Cache::add():如果缓存中未找到该键,则将指定数据存放到缓存中。  yii\caching\Cache::mget():通过指定的多个键从缓存中取回多项数据。  yii\caching\Cache::mset():将多项数据存储到缓存中,每项数据对应一个键。  yii\caching\Cache::madd():将多项数据存储到缓存中,每项数据对应一个键。如果某个键已经存在于缓存中,则该项数据会被跳过。  yii\caching\Cache::exists():返回一个值,指明某个键是否存在于缓存中。  yii\caching\Cache::delete():通过一个键,删除缓存中对应的值。  yii\caching\Cache::flush():删除缓存中的所有数据。

用户相关

1 2 3 4 5 6 7 8 9 10 11 //判断用户是否登录 if(Yii::$app->user->isGuest){     //未登录 }else{     //已登录 }   //取得用户信息 $user = Yii::$app->user->identity; echo $user->username; echo $user["username"];

跳转

1 return Yii::$app->response->redirect(["/shop/apply"], 302);

相关文章

1、将Yii2.0advanced版中应用主体frontend或backend应用复制...
Yii2restfulAPI文档一、配置模块:1.Config/main.php:  2...
Yii在framework/i18n/data/%lang%.php文件中有很多翻译.这...
在Yii2中,官方的页面多语言解决方案有两个:方案1,使用Yii...
Yii2.0对数据库查询的一些简单的操作1234567891011121314151...
数据查询User::find()->all();此方法返回所有数据;User:...