1 获取URL信息<?php
//第一种 使用系统方法
$re = request();
//第二种 使用系统类 因为是单例模式所以不能直接new
$res = \think\Request::instance();
dump($res);
//第三种 引入 think\Controller;think\Request; 两个系统类
namespace app\admin\controller;
use think\Controller;
use think\Request;
class Index extends Controller
{
public function test(Request $req)
{
//获取域名
echo $req->domain();
//除域名以外部分 包含?后面
echo $req->Url(); //admin.php/Index/test?dd=ddd
//不含?后面参数
echo $req->baseUrl();//admin.php/Index/test
//入口文件
echo $req->baseFile();
//获取pathinfo部分(除域名和?后面,中间部分)
echo $req->pathinfo();//Index/test
//同上 但不含后缀
echo $req->path();
//ROOT地址
echo $req->root(true);
//获取header参数 获取头信息
echo $req->header('token');
}
2 设置/获取 模块/控制器/方法名称
//获取模块
dump($req->module());
//获取控制器
dump($req->controller());
//获取方法名
dump($req->action());
3 获取请求参数
//请求方法
dump($req->method());
//资源类型
dump($req->type());
//访问ip
dump($req->ip());
//是否是ajax 请求
dump($req->isAjax());
//请求参数
dump($req->param());
//请求参数 仅包含nn
dump($req->only(['aa','bb']));
//请求参数 排除aa
dump($req->except(['bb']));
3.1 session和 cookie<?php
获取SESSION变量
Request::instance()->session('user_id'); // 获取某个session变量
Request::instance()->session(); // 获取全部的session变量
使用助手函数实现:
input('session.user_id');
input('session.');
获取Cookie变量
Request::instance()->cookie('user_id'); // 获取某个cookie变量
Request::instance()->cookie(); // 获取全部的cookie变量
使用助手函数实现:
input('cookie.user_id');
input('cookie.');
4 参数过滤
在表单里提交给自己然后判断有值时处理
全部过滤 可使用 input() 获取值<?php
//请求过滤
if(input()){
$req->filter(['strip_tags','htmlspecialchars','md5']);//过滤html代码 和把html代码转为实体 再进行md5加密
dump(input());
}
return view('test');
针对某变量过滤 和 内置提供的Filter ID过滤 不能用input() 获取过滤后的值<?php
if(input()){
$name = $req->param('name','','htmlspecialchars');
//$password = $req->post('password','','md5'); 同样可针对 请求方法
$password = $req->param('password','','md5');
//使用 内置提供的Filter ID过滤
$email = $req->param('email','',FILTER_VALIDATE_EMAIL);
dump($name.'---'.$password);
}
return view('test');
如果要使用inpu() 获取过滤值 必须过滤就用<?php
$name = input('name','','htmlspecialchars');
$password = input('password','','md5');
$email = input('email','',FILTER_VALIDATE_EMAIL);
dump($name.'---'.$password.'----'.$email);5 变量修饰符
修饰符作用s强制转换为字符串类型
d强制转换为整型类型
b强制转换为布尔类型
a强制转换为数组类型
f强制转换为浮点类型<?php
//强制转化为字符串
dump(input('name/s'));
//强制转化为整型
dump(input('name/d'));
//强制转化为布尔类型
dump(input('name/b'));
//强制转化为数组
dump(input('name/a'));
//强制转为浮点型
dump(input('name/f'));
6 判断请求类型
$re = Request::instance();
dump($re->isGet()); //判断是否是get请求
dump($re->isPost()); //是否是post请求
dump($re->isMobile()); //是否是手机端请求
//也可以用助手函数
dump(request()->isAjax()); //是否是ajax请求7 参数绑定
注意: 当参数在方法里没有默认值时,必须要在url 里定义参数值 否则报错
参数绑定是把URL地址(或者路由地址)中的变量作为操作方法的参数直接传入
无需使用 input , get ,post .....等方法获取
public function paramBind($name='李刚',$age='19')
{
dump($name.'--今年:'.$age);
}
8 http请求的缓存
public function cache()
{
$re = Request::instance();
$re->cache('cache','20');
// request()->cache('cache','20'); 或者使用助手函数
return '999';
}