Thinkphp快速入门(二)

前言

这节讲请求和响应

请求
Request请求对象

现在框架都有依赖注入
在方法中声明参数类型即可
如果继承了app/BaseController.php
可以使用$this->request(这个在构造函数中注入的)

namespace app\admin\controller\base;

use app\BaseController;
use app\Request;

class Home extends BaseController
{
    public function index()
    {
        return captcha('verify');
    }

    public function test(Request $request)
    {
        # 等价 true
        dd($request === $this->request);
    }

}
获取请求参数

可以通过Request->params($name, $default, $filter) 获取参数
$name 参数名(单个参数string,多个参数array格式) 为空则获取所有参数
$default 参数获取不到返回的默认值
$filter 指定参数返回的类型 可以是int,string…,函数名等…

        # 获取单个参数
        $request->param('name');

        # 获取指定多个参数
        $request->param(['name', 'age']);

        # 获取所有参数
        $request->param();

        # 获取参数并转换成int
        # 还可以是string,boolean...
        $request->param('age', '', 'int');

        # 获取参数并使用trim过滤
        # 还可以是htmlspecialchars,strip_tags...
        $request->param('content', '', 'trim');

        # 多个过滤连用 以,分割
        $request->param('content', '', 'trim,htmlspecialchars');

也可以使用辅助函数input( n a m e , name, name,default, f i l t e r ) 获 取 参 数 用 法 同 R e q u e s t − > p a r a m s ( filter) 获取参数 用法同Request->params( filter)Request>params(name, $default, $filter)相同
其是在Request上的封装

        # input() 辅助函数可以要求获取指定提交方式提交的数据
        # get.content 代表获取get方式提交的content参数
        # get.content 换成 content 就等价于 Request->param(content)
        input('get.content', '', '');
Request其他常用方法

从请求头中获取信息

        # 常用的是从头部获取token
        $request->header('Authorization');

判断请求的提交动作

        # 判断是post动作
        # post可以换成Get,Delete,Put......来判断其他动作
        $request->isPost();

判断请求形式

        # 判断是否以json的形式请求
        # Json可以换成Ajax,Pjax...等来判断对应请求形式
        $request->isJson()
响应

响应对象Response创建

        # Response::create($data,$type,$code)
        # $data 响应内容
        # 响应类型 html 时要求$data非array,json时无要求 默认html
        # 响应的http状态码 默认200
        $response = Response::create("content value", "html", "200");

设置响应header

        # header($options)
        # options 为array
        $response->header(['content-type' => 'text/html']);

辅助函数response

        # function response($data = '', $code = 200, $header = [], $type = 'html')
        # 是对Response的创建和设置header信息的封装
        return response(['name' => 'this is ok'], 200, [], 'json');

辅助函数json

        #  function json($data = [], $code = 200, $header = [], $options = [])
        # 是对创建json 类型 Response的封装
        return json(['name' => 'name'], 200, ['content-type' => 'text/json']);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值