TP6.0记录文档

请求变量
	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' => '[email protected]',
	];
	$validate   = Validate::rule($rule)->message($msg);
	$result = $validate->check($data);
	if(!$result) {
     
	    dump($validate->getError());
	}

路由
	Route::get('new/','News/read'); // 定义GET请求路由规则
	Route::post('new/','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' => '[email protected]'
	        ]);
	  View::assign('data',[
	            'name'  => 'ThinkPHP',
	            'email' => '[email protected]'
	        ]);
	View::fetch('index');
	
	助手函数
	view('index', [
	    'name'  => 'ThinkPHP',
	    'email' => '[email protected]'
	]);
	模板输出
	{
     $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');

你可能感兴趣的:(tp6,tp6)