代码改变世界

TP5快速入门

2020-08-01 19:50  idea555  阅读(290)  评论(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
//order支持使用数组对多个字段的排序,例如order(['order','id'=>'desc'])
//group方法只有一个参数,并且只能使用字符串。
//having方法只有一个参数,并且只能使用字符串
$map = [];
$map[] = ['u.store_id','=',0];
$map[] = ['u.reg_time','<',time()];
$map[] = ['u.user_rank','in',[0,9]];
 
$group '';
$list = Db::name('users')
    ->alias('u')
    ->field('u.user_id,u.user_name,u.store_id')
    ->leftJoin('order_info oi','oi.user_id=u.user_id')
    ->where($map)
    ->limit(0,10)
    ->group($group)
    ->order('id''desc')
    ->select();
 
// 获取某个用户的积分
Db::name('users')->where('id',10)->value('score');
 
// 获取某个列的所有值
Db::name('users')->where('status',1)->column('name');
 
// 以id为索引
Db::name('users')->where('status',1)->column('name,age','id');
 
//获取用户数:
Db::name('users')->count();
 
//原生SQL查询 query方法
Db::query("select * from think_user where status=1");
 
//打印SQL
echo User::fetchSql()->find(1);

二、更新

1
2
3
4
5
6
Db::name('user')
    ->where('id', 1)
    ->update(['name' => 'thinkphp']);
     
//原生sql执行修改、删除 execute方法
Db::execute("update think_user set name='thinkphp' where status=1");

三、删除

1
2
3
Db::name('user')
    ->where('id', 1)
    ->delete();

四、插入

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//使用Db类的insert方法向数据库提交数据
$data = ['foo' => 'bar''bar' => 'foo'];
Db::name('user')->insert($data);
 
//添加数据后如果需要返回新增数据的自增主键,可以使用insertGetId方法新增数据并返回主键值:
$userId = Db::name('user')->insertGetId($data);
 
//添加多条数据
$data = [
    ['foo' => 'bar''bar' => 'foo'],
    ['foo' => 'bar1''bar' => 'foo1'],
    ['foo' => 'bar2''bar' => 'foo2']
];
Db::name('user')->insertAll($data);

 五、接受参数、跳转、重定向、判断请求类型、ajax返回、显示页面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//判断请求类型
isGet  isPost isAjax
 
//接受参数
input('get.name','','htmlspecialchars'); // 获取get变量 并用htmlspecialchars函数过滤
 
//跳转、重定向
$this->success('新增成功''User/list');
$this->error('新增失败');
 
$this->redirect('News/category', ['cate_id' => 2], 302, ['data' => 'hello']);
 
//ajax返回
$data = ['name' => 'thinkphp''status' => '1'];
return json($data);
 
//显示页面
return view('home');
return $this->display('home');
return $this->fetch('home');

六、模板标签

1、Volist

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
//在模版定义如下,循环输出用户的编号和姓名:
{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist}
 
//输出循环变量:
{volist name="list" id="vo" key="k" }
{$k}.{$vo.name}
{/volist}
 
//如果没有指定key属性的话,默认使用循环变量i,例如:
{volist name="list" id="vo"  }
{$i}.{$vo.name}
{/volist}
 
//如果要输出数组的索引,可以直接使用key变量,和循环变量不同的是,这个key是由数据本身决定,而不是循环控制的,例如:
{volist name="list" id="vo"  }
{$key}.{$vo.name}
{/volist}

2、Foreach

1
2
3
{foreach $list as $key=>$vo }
    {$vo.id}:{$vo.name}
{/foreach}

3、比较(eq或者 equal、neq 或者notequal、gt、egt、lt、elt、heq、nheq)

1
2
3
4
5
6
7
8
9
{eq name="name" value="value"}value{/eq}
//例如:
{eq name="name" value="value"}
    相等
{else/}
    不相等
{/eq}
//通常比较标签的值是一个字符串或者数字,如果需要使用变量,只需要在前面添加“$”标志: 当vo对象的属性等于$a就输出
{eq name="vo:name" value="$a"}{$vo.name}{/eq}

4、比较

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
//SWITCH标签
{switch 变量 }
    {case value1 }输出内容1{/case}
    {case value2}输出内容2{/case}
    {default /}默认情况
{/switch}
 
//使用示例:
{switch User.level}
    {case 1}value1{/case}
    {case 2}value2{/case}
    {default /}default
{/switch}
 
//IF标签
{if 表达式}value1
{elseif 表达式 /}value2
{else /}value3
{/if}
 
//用法示例:
{if $name == 1) OR ( $name > 100) } value1
{elseif $name == 2 /}value2
{else /} value3
{/if}

 5、范围(in、notin、between、notbetween)

1
2
3
4
5
{in name="id" value="1,2,3"}
  id在范围内
{else/}
  id不在范围内
{/in}