TP5快速入门

一、查询

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

二、更新

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

三、删除

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

四、插入

//使用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返回、显示页面

//判断请求类型
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

//在模版定义如下,循环输出用户的编号和姓名:
{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

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

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

{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、比较

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

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

 

posted @ 2019-07-20 13:34  个人小站  阅读(652)  评论(0编辑  收藏  举报