• tp6 文档


    请求变量
    use thinkfacadeRequest;
    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 thinkfacadeCache;
    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(); 路由中使用验证
    
    thinkfacadeValidate
    $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 thinkfacadeDb;
    $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__',	hinkfacadeRequest::domain(1)); http://tp6.api.shanliwawa.top
    define('__ROOT__',	hinkfacadeapp::getRootPath());  系统根目录 C:www	p6
    define("PRE",config('database.prefix')); 表前缀

    绝对路径获取

    	hinkfacadeapp::getRootPath() 根目录C:www	p6
    	hinkfacadeapp::getAppPath()  应用路径  C:www	p6appindex
    	hinkfacadeapp::getConfigPath() 配置路径C:www	p6config
    	hinkfacadeapp::version() 核心版本

    模板视图

    use thinkfacadeView;
    
    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');
  • 相关阅读:
    小心触发器脚本陷阱
    delphi程序如何防止多实例启动
    自定义控件wxIpCtrl –(Ip Address)
    wxWidgets流操作 (三) wxMemoryInputStream/wxMemoryOutputStream与wxImage交互
    D2 std.stream 文件读写小练习
    挂钟程序
    Lazarus+FPC2.7.1 下DLL 创建及调用
    正则表达式30分钟入门教程
    Word frequency program终结
    阅读作业第二篇
  • 原文地址:https://www.cnblogs.com/yszr/p/14704354.html
Copyright © 2020-2023  润新知