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}
{/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}