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、warningreturn $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);//获取IPYii::$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); |
Yii2 常用代码集合的更多相关文章
- phpcms v9模板制作常用代码集合(转)
phpcms v9模板制作常用代码集合(个人收藏) 1.截取调用标题长度 {str_cut($r[title],36,'')} 2.格式化时间 调用格式化时间 2011-05-06 11:22:33 ...
- phpcms v9模板制作常用代码集合
phpcms v9模板制作常用代码集合(个人收藏) 1.截取调用标题长度 {str_cut($r[title],36,'')} 2.格式化时间 调用格式化时间 2011-05-06 11:22:33 ...
- SAP屏幕字段常用代码集合
SAP屏幕字段常用代码集合 ().Screen 设计 TABLES: SSCRFIELDS. PARAMETERS: P_EBLEN LIKE VBRK-EBLEN DEFAULT ' '. PARA ...
- ExtJS常用代码集合
ExtJS常用代码集合,包括弹出提示框,登陆框,树状结构等等.1. [代码]弹出提示框 <html> <head> <title>Ge ...
- C#常用代码集合(1)
引用自james li的博客,地址:http://www.cnblogs.com/JamesLi2015/p/3147986.html 1 读取操作系统和CLR的版本 OperatingSys ...
- Android常用代码集合
这篇文章主要记录一些常用的一些代码段,方便以后查阅,不断更新中. 1:调用浏览器,载入某网址 1 2 3 Uri uri = Uri.parse("http://www.android-st ...
- Unity3D常用代码集合
1.基本碰撞检测代码 function OnCollisionEnter(theCollision : Collision){ if(theCollision.gameObject.n ...
- Android 常用代码大集合 [转]
[Android]调用字符串资源的几种方法 字符串资源的定义 文件路径:res/values/strings.xml 字符串资源定义示例: <?xml version="1.0&q ...
- Java 常用List集合使用场景分析
Java 常用List集合使用场景分析 过年前的最后一篇,本章通过介绍ArrayList,LinkedList,Vector,CopyOnWriteArrayList 底层实现原理和四个集合的区别.让 ...
随机推荐
- github搜索不到代码的问题
Hi team, Please check the following three query url :https://github.com/Konctantin/GreyMagic/search? ...
- NodejS---require的机制
假设Y是路径,X是文件名或目录名,当 Nodejs 遇到 require(Y+X) 时,按照下面的顺序处理: 1.如果 X 是核心模块(例如:require("http")) a. ...
- hibernate映射配置
1. 普通字段类型 2. 主键映射 单列主键映射 多列作为主键映射 主键生成策略,查看api: 5.1.2.2.1. Various additional generators 数据库: Q:一个 ...
- Unix介绍
1965年,AT&T贝尔电话实验室.通用电气公司.麻省理工学院MAC课题组一起联合开发一个称为Multics的新操作系统.该项目目的是让大型主机可以同时提供300台以上的终端机连接使用.其被设 ...
- python格式化字符串format的用法
填充与对齐 填充常跟对齐一起使用 ^.<.>分别是居中.左对齐.右对齐,后面带宽度 :号后面带填充的字符,只能是一个字符,不指定的话默认是用空格填充 比如 In [15]: '{:> ...
- [iOS]UIWebView返回和NSURLErrorDomain-999
1.UIWebView实现返回不崩溃: -(BOOL)webView:(UIWebView *)webView shouldStartLoadWithRequest:(NSURLRequest *)r ...
- SqlServer try catch 捕获触发器\存储过程异常,结合 transaction 事务
SoEasy~,贴上代码看所有 ALTER trigger [dbo].[tgr_SG_Gathering_update] on [dbo].[SG_Gathering] for update --更 ...
- ssh隧道详解与案例利用讲解
原文阅读:https://www.52stu.org/?p=206 你是否有过自己身处内网,却想整个远控上线?你是否有过身处目标内网,却想把目标的内网的Linux的ssh转发出来?你是否想过穿透多层网 ...
- JAVA -数据类型与表达式---数据类型转换
数据类型转换技术 Java中,数据转换的方式有三种:*赋值类型转换*提升类型转换*强制类型转换 1.赋值类型转换 当需要将一个类型的值赋给另一种类型的变量时,该值将被转换为新类型的值,此时就发生了赋值 ...
- 建立EF访问数据库架构时,出现One or more validation errors were detected during model generation
原因是因为我在写实体类的时候没有为实体类中的属性声明一个主键,即用[key]特性标注在属性上,这样DbContext才能为我们在数据库上找到对应的主键 using System.ComponentMo ...