关于thinkphp:thinkphp6速查手册

5次阅读

共计 4475 个字符,预计需要花费 12 分钟才能阅读完成。

申请变量

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://www.baidu.com:80/index/index
Request::domain(1)   http://www.baidu.com
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 是否存在 

响应

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

路由

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(); 跨域 

url 生成

url('index/hello', ['id'=>5,'name'=>'李白'],'do');  http://www.baidu.com/index/hello/ 李白.do?id=5
url('index/hello#aa'); 锚点 

数据库操作

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 条 

缓存操作

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 操作

 设置不反对数组, 序列化后存储
cookie('name');
cookie('name', null);

cookie('think_lang','en-us');// 设置语言类型 

数据验证

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());
}
正文完
 0