Thinkphp 请求和响应

一. Request对象获取方法

1. request() 助手函数获取

2. think\Request 类获取

3.利用框架注入Request对象  Request方法时单利方法 在think框架app类中会被实例化

<?php
namespace app\index\controller;

use think\Request;

class Index
{
    /**
     * @param Request $request
     * @return string|void
     */
    public function index(Request $request)
    {
        #$request = request();
        #$request = Request::instance();
        return dump($request);
    }
}

二. Request 对象的使用方法  注Request的param方法获取的值包括post传输的值,使用时尽量使用$request->post('id')这种明确范围的方式

<?php
namespace app\index\controller;

use http\Params;
use think\Request;

class Index
{
    /**
     * @param Request $request
     * @return string|void
     * @url http://localhost/news/5.html?name=jiang
     */
    public function index(Request $request)
    {
        /* 获取域名 */
        dump($domain = $request->domain());   # 返回域名 $domain = http://localhost
        dump($pathinfo= $request->pathinfo()); # 返回域名和?之间的值 $pathinfo = news/5.html
        dump($path = $request->path());         # $path = news/5

        /* 请求类型 */
        dump($method = $request->method());     # 返回请求方法 $method = GET;
        dump($request->isGet());              #判断是请求的方法类型 是判断的类型返回true 不是返回false
        dump($request->isAjax());             #

        /* 请求参数 */
        dump($id = $request->get("id"));    #get接收的值不包括 pathinfo 部分    这里返回 null
        dump($id = $request->param('id'));   # $id = 5
        dump($name = $request->param('name')); # $name = jiang
        #session("name",'jiangfeilong'); #设置session
        dump($session = $request->session()); #获取sssion对象 没设置session的化返回空数组
        dump($session_name = $request->session("name")); #返回session 的name的值
        dump($cookie = $request->cookie());   #获取cookie对象 返回cookie数组
        dump($phpSessId = $request->cookie('PHPSESSID')); #返回cookie的sessionId的值
        /* 利用助手函数获取url参数 */
        dump($id = input('id'));


        /* 获取模块 控制器 操作 */
        dump($module = $request->module());  #获取当前模块 这里时index
        dump($controller = $request->controller()); #返回当前控制器 这里是 Index类
        dump($action = $request->action()); #返回当前操作 这里返回的是index模块的Index类的index()方法

        /* 获取 url */
        dump($url = $request->url());  #返回 / 之后的 url  这里是 /news/5.html?name=jiang
        dump($baseUrl = $request->baseUrl()); # 返回 /和?号之间url的部分 这里是 /news/5.html
       

    }
}

 request和input使用filter过滤

语法格式 $reuqest->post('key',100,'过滤函数'); //100为默认值  过滤函数可以自己定义,也可以用Php的 trim  intval 等函数

自己定义fillter的使用示例

<?php
/* application/index/controller/filter.php */



 function change($text )
{
    $tmp = intval($text);
    if((!is_int($tmp))){
        return 0;
    }
    return -$tmp;
}
<?php
namespace app\index\controller;

use http\Params;
use think\Request;
import('filter',APP_PATH.'common',".php");
class Index
{
    /**
     * @param Request $request
     * @return string|void
     * @url http://localhost/news/5.html?name=jiang
     */
    public function index(Request $request)
    {

        dump('request -> '.$request->post('id',100,'intval'));
        /* 助手函数 */

        dump($request->post('id',100,'change'));
        dump(input('post.name','jiang','trim'));

    }

}

 

posted @ 2019-07-18 00:37  江期玉  阅读(1085)  评论(0编辑  收藏  举报