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); |
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 底层实现原理和四个集合的区别.让 ...
随机推荐
- python3 格式化输出,字符串操作,模块,列表,元组
初识python,在网上看了老男孩的视频,建立一个博客将自己所学的python知识记录下来. input加密,用于输入密码的阶段. import getpass user = input(" ...
- centos 6和centos7关闭防火墙的方法
centos 6 关闭命令: service iptables stop 永久关闭防火墙:chkconfig iptables off 两个命令同时运行,运行完成后查看防火墙关闭状态 ...
- (转)js控制窗口失去焦点(包括屏蔽Alt+Tab键切换页面)
本章内容转自:http://www.cnblogs.com/BoKeYuanVinson/articles/3360954.html 转载自网络贴吧: 页面脚本是无法截获alt键的,不过可以变通一下, ...
- 阶段3 3.SpringMVC·_04.SpringMVC返回值类型及响应数据类型_5 响应之使用forward和redirect进行页面跳转
这个方式用的比较少. forward 转发或者重定向 返回forward关键字就表现现在想使用的就是请求转发 redirect
- ansible报错处理
[root@localhost ~]# ansible testhosts -m command -a 'rm -rf /tmp/haha' [WARNING]: Consider using the ...
- golang(11) 反射用法详解
原文链接:http://www.limerence2017.com/2019/10/14/golang16/ 反射是什么 反射其实就是通过变量动态获取其值和类型的一种技术,有些语言是支持反射的比如py ...
- "UICollectionView实现带头视图和组的头视图同时存在"实现
实现效果如下: 以前做这效果的界面,总是实现的是section的头视图,因为我一直觉得collectionView是不像UITableView那样有tableHeaderView的,所以每次实现只能是 ...
- 【Python开发】Python PIL ImageDraw 和ImageFont模块学习
ImageDraw 新建一个空白图片为本文作示例,新建空白文件的方法 见Image模块,Image.new: mport Image blank = Image.new("RGB&quo ...
- GIT命令总结,so easy
一:GIT命令实战(码云) https://oschina.gitee.io/learn-git-branching/ 提交 git commit 创建分支 git branch <name&g ...
- FTL2
ABSTACT 1.NAND flash memory (主要缺点): (1)partial page updates (2)general-purpose cache usually does n ...