TP6 常用变量

请求变量

use think\facade\Request;
Request::param('name');
Request::param();全部请求变量 返回数组
Request::param(['name', 'email']); 多个变量
Request::param('a','1') $a不存在使用默认值1
Request::param('username','','strip_tags'); 参数过滤 去掉html标签 htmlspecialchars转换成实体入库 strtolower小写
Request::header(); 请求头数组,支持单个 cookie
input("name");
Request::session();获取 $_SESSION 变量
Request::cookie();获取 $_COOKIE 变量
Request::server();获取 $_SERVER 变量
Request::env();返回env数组
Request::file();获取 $_FILES 变量


Request::baseUrl(); /index/index
Request::host(true); 域名:www.baidu.com,默认无参数包含端口:80
Request::url(1); 完整域名和地址 http://tp6.api.shanliwawa.top:80/index/index
Request::domain(1)   http://tp6.api.shanliwawa.top
Request::time()  请求时间戳
Request::app() 应用名 index
Request::controller() 控制器 Index 参数true小写
Request::action() 操作 index 参数true 小写
Request::method(true); 请求类型获取  GET
isGet isPost isPut isDelete isAjax isMobile isHead 判断是否某种类型
Request::has('id','get'); 检测变量id是否存在
url('index/hello', ['id'=>5,'name'=>'李白'],'do');  http://tp6.api.shanliwawa.top/index/hello/李白.do?id=5
url('index/hello#aa'); 锚点

Cache::set('name', $value, 3600); 1小时后过期
Cache::get('name'); 获取缓存
多缓存类型配置
return [
    // 缓存类型为File
    'type'  =>  'redis',
    // 全局缓存有效期(0为永久有效)
,开发下一定要设置-1 否在刷新后 还在
    'expire'=>  -1,
    // 缓存前缀
    'prefix'=>  'think',
    // 缓存目录
    'host'       => '127.0.0.1',
];
return [
    // 使用复合缓存类型
    'type'  =>  'complex',
    // 默认使用的缓存
    'default'   =>  [
        // 驱动方式
        'type'   => 'file',
        // 缓存保存目录
        'path'   => '../runtime/default',
    ],
    // 文件缓存
    'file'   =>  [
        // 驱动方式
        'type'   => 'file',
        // 设置不同的缓存保存目录
        'path'   => '../runtime/file/',
    ],
    // redis缓存
    'redis'   =>  [
        // 驱动方式
        'type'   => 'redis',
        // 服务器地址
        'host'       => '127.0.0.1',
    ],
];
use think\facade\Cache;
Cache::store('file')->set('name','123',0);
$v =   Cache::store('redis')->get('name');
 Cache::store('default')->get('name');文件缓存
Cache::delete('name');
Cache::clear();
Cache::set('name', [1,2,3]);
Cache::push('name', 4);
Cache::remember('start_time', time()); 不存在则创建
Cache::inc('name',1); 自增1
Cache::dec('name',1); 自减1
$redis = Cache::handler(); redis对象
配置redis session
return [
    'type'       => 'redis',
    'prefix'     => 'think',
    'auto_start' => true,
     // redis主机
    'host'       => '127.0.0.1',
     // redis端口
    'port'       => 6379,
     // 密码
    'password'   => '',
]
session('name', ['thinkphp']); 设置支持字符串 数组
session('name');获取
session('name', null);删除
session(null);清空
cookie('name', 'value', 3600);
 设置不支持数组,序列化后存储
cookie('name');
cookie('name', null);

cookie('think_lang','en-us');//设置语言类型
lang('add user error');//翻译
config('cache.type') 读取配置

验证

{:token_field()} 模板中输出令牌
{:token_meta()} ajax提交
$.ajaxSetup({
    headers: {
        'X-CSRF-TOKEN': $('meta[name="csrf-token"]').attr('content')
    }
});
Route::post('blog/save','blog/save')->token(); 路由中使用验证

think\facade\Validate
$rule = [
    'name'  => 'require|max:25',
    'age'   => 'number|between:1,120',
    'email' => 'email',
];
$msg = [
    'name.require' => '名称必须',
    'name.max'     => '名称最多不能超过25个字符',
    'age.number'   => '年龄必须是数字',
    'age.between'  => '年龄只能在1-120之间',
    'email'        => '邮箱格式错误',
];
$data = [
    'name'  => 'thinkphp',
    'age'   => 10,
    'email' => 'thinkphp@qq.com',
];
$validate   = Validate::rule($rule)->message($msg);
$result = $validate->check($data);
if(!$result) {
    dump($validate->getError());
}

路由

Route::get('new/<id>','News/read'); // 定义GET请求路由规则
Route::post('new/<id>','News/update'); // 定义POST请求路由规则
Route::put('new/:id','News/update'); // 定义PUT请求路由规则
Route::delete('new/:id','News/delete'); // 定义DELETE请求路由规则
Route::any('new/:id','News/read'); // 所有请求都支持的路由规则
->allowCrossDomain();跨域

输出响应

$data=['code'=>200,'msg'=>'信息提示','list'=>['中国']];
json($data);
jsonp($data);
xml($data);
redirect('http://www.thinkphp.cn');
redirect('/index/hello/name'); //站内跳转
download('./static/2.xlsx'); 下载

数据库

use think\facade\Db;
$rs =Db::name('user')->where('id',1)->find();  查询一条记录 name不含前缀
$rs =Db::table('ims_user')->where('sex', 2)->select(); 多条数据 table含前缀
$rs1 =Db::name('user')->where('id', 1)->value('name'); 查询某个字段值
$rs =Db::table('ims_user')->where('sex', 2)->column('name,id','id'); 返回name,id列,后面是key
$userId = Db::name('user')->insertGetId($data);//插入数据返回id
Db::name('user')
->limit(100)
->insertAll($data); 插入多条数据,分每次100
Db::name('user')
->where('id', 1)
->update(['name' => 'thinkphp']); 更新
Db::table('think_user')->delete(1);
Db::table('think_user')->delete([1,2,3]);
Db::table('think_user')->where('id',1)->delete();
Db::name('user')->delete(true);//清空数据
where('id','<>',1)  不等于1  >  >=   like 
where("id=:id and username=:name", ['id' => 1 , 'name' => 'thinkphp'])
field('id,title,content') 指定字段
limit(10,25) 第十条开始25条  单数字返回数据条数
page(1,10) 第一页十条
order(['id'=>'desc','sex'=>'desc']) 排序
group('user_id,test_time') 分组
count() max('id') min() avg() sum() 聚合函数
whereTime('birthday', '>=', '1970-10-1')  支持< = 
whereTime('create_time','-2 hours') 查询2小时
whereBetweenTime('create_time', '2017-01-01', '2017-06-30') 查询时间段
whereYear('create_time') 今年 whereYear('create_time','2018')  last year 去年
whereMonth('create_time') last month上月 2018-06 具体月份
whereWeek('create_time') last week 上周
whereDay('create_time')今天 yesterday昨天 2018-11-1具体

Db::query("select * from think_user where status=1"); 原生查询
Db::execute("update think_user set name='thinkphp' where status=1");//更新插入删除
Db::query("select * from think_user where id=? AND status=?", [8, 1]);//绑定
$list = Db::name('user')->where('status',1)->paginate(10); 分页每页10

模型

定义全局常量

define('__URL__',\think\facade\Request::domain(1)); http://tp6.api.shanliwawa.top
define('__ROOT__',\think\facade\app::getRootPath());  系统根目录 C:\www\tp6\
define("PRE",config('database.prefix')); 表前缀

绝对路径获取

\think\facade\app::getRootPath() 根目录C:\www\tp6\
\think\facade\app::getAppPath()  应用路径  C:\www\tp6\app\index\
\think\facade\app::getConfigPath() 配置路径C:\www\tp6\config\
\think\facade\app::version() 核心版本

模板视图

use think\facade\View;

View::assign([
            'name'  => 'ThinkPHP',
            'email' => 'thinkphp@qq.com'
        ]);
  View::assign('data',[
            'name'  => 'ThinkPHP',
            'email' => 'thinkphp@qq.com'
        ]);
View::fetch('index');

助手函数
view('index', [
    'name'  => 'ThinkPHP',
    'email' => 'thinkphp@qq.com'
]);
模板输出
{$name}
{$data.name} 等价 {$data['name']}
{:dump($data)} 使用函数 :开头
{$user.nickname|default="这家伙很懒,什么也没留下"}
{$Think.cookie.name}  // 输出$_COOKIE['name']变量
{$Think.server.script_name} // 输出$_SERVER['SCRIPT_NAME']变量
{$Think.session.user_id} // 输出$_SESSION['user_id']变量
{$Think.get.page} // 输出$_GET['page']变量
{$Request.param.name} 获取name
{$data.name|raw} 不转义输出
{$data.create_time|date='Y-m-d H:i'}
{literal}
    Hello,{$name}!
原样输出
{/literal}
{load href="/static/js/common.js,/static/js/common.css" /} 加载js,css
{php}echo 'Hello,world!';{/php}

{/* 注释内容 */ }{// 注释内容 }
{include file="public/header" /} 模板包含
{include file="Public/header" title="$title" keywords="开源WEB开发框架" /} 传入参数

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

{for start="开始值" end="结束值" comparison="" step="步进值" name="循环变量名" }
{/for}

{if 表达式}value1
{elseif 表达式 /}value2
{else /}value3
{/if}

记录日志

log.php 可添加  'json'	=>	1 表示json格式
trace("日志信息")

app.php中
 'app_trace'             => true,
trace.php改为默认html
'type' => 'Console',

上传

$file = request()->file('image');
    移动到框架应用根目录/uploads/ 目录下
    $info = $file->move( '../uploads');
    if($info){
         成功上传后 获取上传信息
         输出 jpg
        echo $info->getExtension();
       输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
        echo $info->getSaveName();
        输出 42a79759f284b767dfcb2a0197904287.jpg
        echo $info->getFilename(); 
    }else{
        上传失败获取错误信息
        echo $file->getError();
    }
    多文件xphr
     foreach($files as $file){}
     验证,生成带md5文件名
     $info = $file->rule('md5')->validate(['size'=>15678,'ext'=>'jpg,png,gif'])->move( '../uploads');
资源资源:https://www.kancloud.cn/logoove/we7/1094868
版权声明

弈心博客


首发 弈心博客,转载请附链接!

赞赏支持

感谢支持!


建站不易,感谢支持!

推荐阅读
二舅治好了我的精神内耗?我觉得没有     小时候看的经典偶像剧,我们经常看到的女主人设通常是一穷二白的平民身份,甚至经历过某种可怜遭遇,身负着某种悲惨命运,但是却能对自己说,“没关系,我就是打不倒的小草,小草的生命力可是很顽强的。”     玛丽苏式的故事情节,乐观的女主一定会有福报,要么是找到一个高富帅的男朋友塑造灰姑娘逆袭形象;要么是努力之后直达成
23

《三体》摘录(一) ◆ 刘慈欣2018克拉克奖获奖感言 >>我相信,无垠的太空仍然是人类想象力最好的去向和归宿,我一直在描写宇宙的宏大神奇,描写星际探险,描写遥远世界中的生命和文明,尽管在现在的科幻作家中,这样会显得有些幼稚,甚至显得跟不上时代。 >> “他从未长大,但从未停止成长”。 ◆ 第一章 科学边界 >> 一切的一切都导向这样一个结果:物理学从来就没有存在过
115

诡异来客 作者:一月 窗外在下雨。 我站在窗前,看着地上的水花发呆。 不知道多久没有出过太阳了,不过也好,我还挺喜欢这种阴沉沉的天气。 我是个心理医生,见过许多奇怪的患者,什么幻想自己是个蘑菇啊,说世界是虚构的啊,说自己能预见未来啊如此云云。不过最近已经很久没有人来咨询了。大概有多久了呢?我正想着,有个女孩敲响了我的门。 她穿着一身淡黄色碎花裙,站在那里,一脸凝重的跟我说:“请帮帮我,我家最近有些不
87

毒鸡汤篇 早上坐地铁(其实是站地铁),某一站下车的人很多。因为要给左边的人让路,忽略了右边也有要下车的人,于是被右边下车的大叔推了一把。 “*!”此人回头骂骂咧咧下了车。 因为以后不会再遇到,所以对别人报以很大的恶意。生活中这种人不在少数,遇到几个很正常。 早就过了回骂年纪的我只能这样安慰自己。 即使道理心知肚明,可是莫名其妙挨骂总归有些不开心。 两站后下了地铁,刚好看到一位大哥正在停共享单车,赶忙走上前。
76

讨厌溢价雪糕,雪糕刺客退退退     你还记得小时候吵着妈妈撒泼打滚也要买的冷饮是哪一款了吗? ![图片](https://www.yixzm.cn/img/9f79b116c751cd0668c4bfe1849586b1)     我先来,是鲜橙冰!不知道大家听过没有,或者是否还有人记得它。感觉长大后就没有在市面上见过它了,心血来潮时还在网上搜索
83

和优秀的人在一起真的很重要 [点击获得summer time ](  https://y.music.163.com/m/song?id=531786301&uct=kVhbP1tI3p68tu05iH3O2w%3D%3D&dlt=0846&app_version=8.7.80&sc=wmv&tn=) **良禽择木而栖,良人择友而交!** ![图片](https://www.yixzm.cn/img/80e0be192ae9
82

接受不完美的自己,我就是不完美小孩     *如果所有人都被要求活得像流水线上的产品一样,不合格的被丢掉,优秀的被标以高价。那么,这个世界会变成什么样子?* [点击收听《不完美小孩》](https://y.music.163.com/m/song?id=524003571&uct=kVhbP1tI3p68tu05iH3O2w%3D%3D&dlt=0846&app_version=8.7.76&
86

《肖申克的救赎》台词记录 1、“任何一个你不喜欢又离不开的地方,任何一种你不喜欢有摆脱不了的生活,就是监狱。如果你感觉到痛苦和不自由,希望你心里永远有一团不会熄灭的火焰,不要麻木,不要固化。”2、“I find I'm so excited. I can barely sit still or hold a thought in my head. I think it the excitement only a free
220

给自己热爱生活的一万种理由     *每天起床之后的的哪一瞬间会让你感慨活着真好?*     [点击收听生活的小美好]( https://y.music.163.com/m/song?id=417596830&uct=kVhbP1tI3p68tu05iH3O2w%3D%3D&dlt=0846&app_version=8.7.76&sc=wmv&t
121

《孤勇者》又火了?或成小学生的对接暗号 [《孤勇者》在线聆听](https://y.music.163.com/m/song?id=1901371647&uct=kVhbP1tI3p68tu05iH3O2w%3D%3D&dlt=0846&app_version=8.7.76&sc=wmv&tn=)     最近在某音短视频霸榜的热点是“用《孤勇者》与陌生小朋友合唱对暗号”,这种新奇的搭讪小朋友的方
158

每天上班都像上坟一样难受,怎么办?三条妙招让上班像踏青 经常听到身边有些朋友抱怨,说每天上班的心情就想上坟。 然而,真是如此么?小编相信,每位上班像上坟的朋友,身边不会缺少这样的朋友: 每天上班精神抖擞,很有干劲,心情愉悦就像是来踏青一样。 他们是怎么做到的呢? ![上班像上坟](https://www.yixzm.cn/img/b4670f8fd96bd22fa4a1a7b31d87a1f7) 其实,上班不愉快无非就是上班时心情不好,感觉焦
2353

记2022年发生的那些事(东航,上海疫情,毒教材,唐山打人) 2022年,新闻一次次的刷新着小编对这个世界的认知。【3.21东航客机事故】3.21东航客机事故,123位旅客9位机组人员共计132位全部遇难,高空坠机尸骨无存。失事原因至今没看到相关新闻。许多都市漂离家远,假期少,飞机是不得已选择的主要通行方式。客机事故破坏了小编对飞机的安全信任,如今不坐飞机没办法回老家看父母,坐飞机又免不了心惊肉跳。【上海疫情】上海疫情封城两个月,普通百姓如我一般,平时勤勤恳
389