博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Yii2 常用代码集合
阅读量:6684 次
发布时间:2019-06-25

本文共 5979 字,大约阅读时间需要 19 分钟。

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);

转载于:https://www.cnblogs.com/cqlb/p/10857367.html

你可能感兴趣的文章
10、《每天5分钟玩转Docker容器技术》学习-Docker命令之本地镜像管理
查看>>
shell脚本:输出昨天的日期
查看>>
corosync+pacemaker做高可用web集群
查看>>
mysql中各个模块如何协同工作
查看>>
MyEclipse - 在tomcat6里面配置tomcat7
查看>>
less新手入门(五)—— CssGuards、循环、合并
查看>>
我的友情链接
查看>>
当sd卡不存在时,保存文件到手机上
查看>>
android动画资料汇总
查看>>
我的友情链接
查看>>
linux文本批量替换
查看>>
计算机网络笔记--物理层(一)
查看>>
wordpres搭建
查看>>
css优先级详解
查看>>
小白第三天
查看>>
2016年linux运维人员必会开源运维工具体系
查看>>
理性分析Python和C#哪个更有前途?
查看>>
mysql主备复制I/O线程不能同步问题
查看>>
高速缓存dns
查看>>
安装lenovo SR860 7x69服务器遇到的坑
查看>>