手册
目录
收藏487
分享
阅读187516
更新时间2022-04-28
前言:
要使用请求对象必须使用门面方式( think\facade\Request类负责 )调用。
要使用请求对象必须使用门面方式( think\facade\Request类负责 )调用
可以通过Request对象完成全局输入变量的检测、获取和安全过滤
支持$_GET、$_POST、$_REQUEST、$_SERVER、$_SESSION、$_COOKIE、$_ENV等系统变量,以及文件上传信息
| 方法 | 说明 |
| param | 获取当前请求的变量 |
| get | 获取 $_GET 变量 |
| post | 获取 $_POST 变量 |
| put | 获取 PUT 变量 |
| delete | 获取 DELETE 变量 |
| session | 获取 SESSION 变量 |
| cookie | 获取 $_COOKIE 变量 |
| request | 获取 $_REQUEST 变量 |
| server | 获取 $_SERVER 变量 |
| env | 获取 $_ENV 变量 |
| route | 获取 路由(包括PATHINFO) 变量 |
| middleware | 获取 中间件赋值/传递的变量 |
| file | 获取 $_FILES 变量 |
1、GET 请求
PARAM类型变量是框架提供的用于自动识别当前请求的一种变量获取方式,是系统推荐的获取请求参数的方法
param方法会把当前请求类型的参数和路由变量以及GET请求合并,并且路由变量是优先的
controller代码
public function edit(){
print_r( $_GET ); // 原生get接收
print_r( Request::param() ); // 获取当前请求的所有变量
print_r( Request::param('id') ); // 获取当前请求的id变量
print_r( Request::get() );
}
view代码:index.html
function edit(id){
layer.open({
type: 2,
title: '添加',
shade: 0.3,
area: ['480px', '440px'],
content: '/index.php/index/edit?id='+id
});
}
2、POST 请求
controller代码
public function edit(){
$id = Request::param('id');
$shop = Db::table('shop_goods')->where('id',$id)->find();
$cat = Db::table('shop_cat')->where('status',1)->select();
View::assign([
'shop' => $shop,
'cat' => $cat
]);
return View::fetch();
}
public function edits(){
// print_r( Request::param() );
// print_r( Request::post() );
$all = Request::param();
$update = Db::table('shop_goods')->where('id',$all['id'])->update($all);
if($update){
echo json_encode(['code'=>0,'msg'=>'修改成功']);
}else{
echo json_encode(['code'=>1,'msg'=>'修改失败']);
}
}
view代码:edit.html
layui.use(['layer','form'],function(){
form = layui.form;
layer = layui.layer;
$ = layui.jquery;
});
function save(){
$.post('/index.php/Index/edits',$('form').serialize(),function(res){
if(res.code>0){
layer.alert(res.msg,{icon:2});
}else{
layer.msg(res.msg);
setTimeout(function(){parent.window.location.reload();},1000);
}
},'json');
}
3、变量修饰符
| 序号 | 修饰符 | 作用 |
| 1 | s | 强制转换为字符串类型 |
| 2 | d | 强制转换为整型类型 |
| 3 | b | 强制转换为布尔类型 |
| 4 | a | 强制转换为数组类型 |
| 5 | f | 强制转换为浮点类型 |
Request::get('id/d');
Request::post('name/s');
Request::param('price/f');| 方法 | 说明 |
| method | 获取当前请求类型 |
| has | 判断传值是否存在 |
| isGet | 判断是否GET请求 |
| isPost | 判断是否POST请求 |
| isPut | 判断是否PUT请求 |
| isDelete | 判断是否DELETE请求 |
| isAjax | 判断是否AJAX请求 |
| isPjax | 判断是否PJAX请求 |
| isJson | 判断是否JSON请求 |
| isMobile | 判断是否手机访问 |
| isHead | 判断是否HEAD请求 |
| isPatch | 判断是否PATCH请求 |
| isOptions | 判断是否OPTIONS请求 |
| isCli | 判断是否为CLI执行 |
| isCgi | 判断是否为CGI模式 |
1、method
public function edit(){
if(Request::method() == 'POST'){
// print_r(Request::method());exit;
$all = Request::param();
$update = Db::table('shop_goods')->where('id',$all['id'])->update($all);
if($update){
echo json_encode(['code'=>0,'msg'=>'修改成功']);
}else{
echo json_encode(['code'=>1,'msg'=>'修改失败']);
}
}else{
// print_r(Request::method());exit;
$id = Request::param('id');
$shop = Db::table('shop_goods')->where('id',$id)->find();
$cat = Db::table('shop_cat')->where('status',1)->select();
View::assign([
'shop' => $shop,
'cat' => $cat
]);
return View::fetch();
}
}
controller代码
public function add(){
if(Request::method() == 'POST'){
$all = Request::param();
$insert = Db::table('shop_goods')->insert($all);
if($insert){
echo json_encode(['code'=>0,'msg'=>'添加成功']);
}else{
echo json_encode(['code'=>1,'msg'=>'添加失败']);
}
}else{
$cat = Db::table('shop_cat')->where('status',1)->select();
View::assign([
'cat' => $cat
]);
return View::fetch();
}
}
view代码:add.html
layui.use(['layer','form'],function(){
form = layui.form;
layer = layui.layer;
$ = layui.jquery;
});
function save(){
$.post('/index.php/Index/add',$('form').serialize(),function(res){
if(res.code>0){
layer.alert(res.msg,{icon:2});
}else{
layer.msg(res.msg);
setTimeout(function(){parent.window.location.reload();},1000);
}
},'json');
}
controller代码
public function del(){
$id = Request::param('id');
$delete = Db::table('shop_goods')->where('id',$id)->delete();
if($delete){
echo json_encode(['code'=>0,'msg'=>'删除成功']);
}else{
echo json_encode(['code'=>1,'msg'=>'删除失败']);
}
}
view代码:index.html
function del(id){
layer.confirm('确定要删除吗?', {
icon:3,
btn: ['确定','取消']
}, function(){
$.post('/index.php/index/del',{'id':id},function(res){
if(res.code>0){
layer.alert(res.msg,{icon:2});
}else{
layer.msg(res.msg);
setTimeout(function(){window.location.reload();},1000);
}
},'json');
});
}
| 序号 | 方法 | 说明 |
| 1 | host | 当前访问域名或者IP |
| 2 | scheme | 当前访问协议 |
| 3 | port | 当前访问的端口 |
| 4 | remotePort | 当前请求的REMOTE_PORT |
| 5 | protocol | 当前请求的SERVER_PROTOCOL |
| 6 | contentType | 当前请求的CONTENT_TYPE |
| 7 | domain | 当前包含协议的域名 |
| 8 | subDomain | 当前访问的子域名 |
| 9 | panDomain | 当前访问的泛域名 |
| 10 | rootDomain | 当前访问的根域名 |
| 11 | url | 当前完整URL |
| 12 | baseUrl | 当前URL(不含QUERY_STRING) |
| 13 | query | 当前请求的QUERY_STRING参数 |
| 14 | baseFile | 当前执行的文件 |
| 15 | root | URL访问根地址 |
| 16 | rootUrl | URL访问根目录 |
| 17 | pathinfo | 当前请求URL的pathinfo信息(含URL后缀) |
| 18 | ext | 当前URL的访问后缀 |
| 19 | time | 获取当前请求的时间 |
| 20 | type | 当前请求的资源类型 |
| 21 | method | 当前请求类型 |
| 22 | rule | 当前请求的路由对象实例 |
| 23 | controller | 当前请求的控制器名 |
| 24 | action | 当前请求的操作名 |
print_r( Request::host() ); print_r( Request::url() ); print_r( Request::controller() ); print_r( Request::action() );
HTTP请求头信息的名称不区分大小写,并且_会自动转换为-
print_r( Request::header() );
print_r( Request::header('accept_encoding') ); 相关
视频
RELATED VIDEOS
科技资讯
1
2
3
4
5
6
7
8
9
精选课程
共5课时
17.2万人学习
共49课时
77万人学习
共29课时
61.7万人学习
共25课时
39.3万人学习
共43课时
70.9万人学习
共25课时
61.6万人学习
共22课时
23万人学习
共28课时
33.9万人学习
共89课时
125万人学习